mediengestalter.info
FAQ :: Mitgliederliste :: MGi Team

Willkommen auf dem Portal für Mediengestalter

Aktuelles Datum und Uhrzeit: Do 28.03.2024 10:25 Benutzername: Passwort: Auto-Login

Thema: [HTML 5][php][Forms]Localization - best practices vom 09.10.2012


Neues Thema eröffnen   Neue Antwort erstellen MGi Foren-Übersicht -> Programmierung -> [HTML 5][php][Forms]Localization - best practices
Autor Nachricht
bacon
Threadersteller

Dabei seit: 24.10.2007
Ort: -
Alter: -
Geschlecht: -
Verfasst Di 09.10.2012 19:43
Titel

[HTML 5][php][Forms]Localization - best practices

Antworten mit Zitat Zum Seitenanfang

Hi,

kennt wer ne gute Möglichkeit, Html-5 Formelemente zu dekorieren, sodass automatisch eine vorgegebene Locale berücksichtigt wird?

Beispiel:

Userlocale am Server ist "it", respektive "it_IT"

Brower-Locale ist "de_DE"

Gerendert wird via \IntlDateFormatter (Format fürs Datum ist \IntlDateFormatter::MEDIUM)

Folglich steht im Markup sowas wie

Code:

<input type="date" id="edit_b2b_profile_testdate" name="edit_b2b_profile[testdate]" value="09/ott/2012">


Wird dann so gerendert (der Browser kann (natürlich) mit dem Eingabeformat nix anfangen):

http://imageshack.us/photo/my-images/543/bildschirmfotovom201210.png/

Gesucht wird eine scriptgesteuerte Lösung, um Html5-Formelemente dieser Art konfigurierbar zu gestalten, und zwar vorzugsweise so, dass nicht irgendwelche Date-Muster für 300000 Länder gepflegt werden müssen, sondern sich das Zeug stark an gängige L10n anlehnt. Und eben auch die jeweilige Sprachbibliothek beherrscht (wenigstens 12 Monatsnamen sollten drin sein pro Sprache)

Kennt da jemand was? Ich weiß es ist etwas utopisch ...


Zuletzt bearbeitet von bacon am Di 09.10.2012 19:47, insgesamt 1-mal bearbeitet
  View user's profile Private Nachricht senden
sahnemuh

Dabei seit: 19.06.2003
Ort: /dev/null
Alter: 42
Geschlecht: Männlich
Verfasst Di 09.10.2012 21:39
Titel

Antworten mit Zitat Zum Seitenanfang

leider nein. bedarf gibt es aber laut google.

ein ansatz wäre:
http://jquerytools.github.com/documentation/dateinput/index.html + http://www.localeplanet.com/support/howto-localize-js.html *Schnief*
  View user's profile Private Nachricht senden
Anzeige
Anzeige
bacon
Threadersteller

Dabei seit: 24.10.2007
Ort: -
Alter: -
Geschlecht: -
Verfasst Mi 10.10.2012 06:54
Titel

Antworten mit Zitat Zum Seitenanfang

Hab ich fast befürchtet. JqueryUI kommt auch mit einigermaßen mächtigen, aber eben inkompatiblen l10n-Konfigurationen daher. Wenn die Serversoftware Muster wie YYYY-dd-mm benutzt, der Client aber YY-dd-mm, biste halt gefickt. Bestenfalls müsste der Server die bereitstellen. Hm ...
  View user's profile Private Nachricht senden
sahnemuh

Dabei seit: 19.06.2003
Ort: /dev/null
Alter: 42
Geschlecht: Männlich
Verfasst Mi 10.10.2012 08:02
Titel

Antworten mit Zitat Zum Seitenanfang

Naja, das date-pattern ist ja nicht das Einzige: Wenn du z.B. in Chrome den Datepicker öffnest, ist dieser auch komplett in der jeweiligen Browsersprache. Den gilt es dann ebenfalls irgendwie zu übersetzen (also inkl. "heute","löschen", den Wochentagen, Monaten und den Tooltips zum Umschalten der Monate / Tage etc.).
  View user's profile Private Nachricht senden
fyll

Dabei seit: 20.09.2003
Ort: Augsburg
Alter: 39
Geschlecht: Männlich
Verfasst Mi 10.10.2012 10:03
Titel

Antworten mit Zitat Zum Seitenanfang

Das einzige, was mir in den Sinn kommt ist ein Datepicker, den ich mal mit jQuery mobile benutzt hab.
l10n' sind reichlich vorhanden und das date_format hält sich annen posix-standard.
http://dev.jtsage.com/jQM-DateBox/demos/api/i18n.html
  View user's profile Private Nachricht senden
bacon
Threadersteller

Dabei seit: 24.10.2007
Ort: -
Alter: -
Geschlecht: -
Verfasst Mi 10.10.2012 12:19
Titel

Antworten mit Zitat Zum Seitenanfang

Ty. Passt nicht ganz, ich brauche etwas, das bei den Mustern ("locale pattern") den ICU-Standard/Notation unterstützt, letztlich basiert der ext\Intl::IntlDateFormatter darauf.

JqueryUI hat es *fast*. Leider gibt es aber bspw. folgende Unterschiede:

Pattern "dd/MMM/y" (PHP): "24/ott/12"
Pattern "dd/MMM/y" (JS/JqueryUI): "24/ottottobre/12"

Man sieht den Unterschied in der Semantik. Ich weiß nicht, wer sich nun *nicht* an die ICU-Standardnotation hält, tippe aber auf JqueryUI, siehe hier:

http://userguide.icu-project.org/formatparse/datetime

Ich suche nach einer client-Bibliothek, die den ICU-Standard voll unterstützt, dann brauche ich nur 3 Parameter mit ans Formularelement zu hängen: timezone, locale & pattern...

Ich werd irre hier.

//http://www.localeplanet.com/support/howto-localize-js.html sieht gut aus, aber ich hab ja keinen Bock alles selbst zu schreiben ....


Zuletzt bearbeitet von bacon am Mi 10.10.2012 12:28, insgesamt 3-mal bearbeitet
  View user's profile Private Nachricht senden
bacon
Threadersteller

Dabei seit: 24.10.2007
Ort: -
Alter: -
Geschlecht: -
Verfasst Mi 10.10.2012 13:41
Titel

Antworten mit Zitat Zum Seitenanfang

// Edit, bevor sich jemand die Zähne ausbeißt: http://www.localeplanet.com/support/howto-localize-js.html ist ebenfalls useless, das Ding mapped Format-Strings ("MEDIUM") direkt auf Closures ("MEDIUM" := function(date) do something ...) abbildet.

Das ist bescheuert, da das Ausgabemuster in der Sprachdatei als Javascript-Closure direkt verdrahtet ist, es findet also keine Konversion von "MEDIUM" auf meinethalben "dd/MMM/yy" statt. Damit kann ich das Pattern nicht direkt in den client injizieren.


Zuletzt bearbeitet von bacon am Mi 10.10.2012 13:42, insgesamt 1-mal bearbeitet
  View user's profile Private Nachricht senden
bacon
Threadersteller

Dabei seit: 24.10.2007
Ort: -
Alter: -
Geschlecht: -
Verfasst Fr 12.10.2012 11:43
Titel

Antworten mit Zitat Zum Seitenanfang

So, triple post und Fresse voll. ICU-Interpreter und Resourceleser von mir für den, der Bock hat da noch mehr Arbeit reinzustecken:

http://bit.ly/VYJYpF

Jquery UI date picker override:

Code:

/**
     * Format a date object into a string value.
     *
     * @param  format    string - the desired format of the date
     * @param  date      Date - the date value to format
     * @param  settings  Object - attributes include:
     *                   dayNamesShort    string[7]  - abbreviated names of the days from Sunday (optional)
     *                   dayNames         string[7]  - names of the days from Sunday (optional)
     *                   monthNamesShort  string[12] - abbreviated names of the months (optional)
     *                   monthNames       string[12] - names of the months (optional)
     * @return  string - the date in the above format
     */
     $.datepicker.constructor.prototype.formatDate = function (format, date, settings)
     {
         var f = icuFactory.getDateFormatter();

         return f.formatDate(date, format);
     }


Code:

    // ICU FACTORY TO FORMAT DATE/TIME STRINGS PROPERLY: MAKE IT GLOBAL
    window.icuFactory = new IcuFactory(

        // GLOBAL CONFIGURATION IS LOADED DYNAMICALLY, SEE layout.html.twig
        ICU_CONFIG.DEFAULT_LOCALE,
        ICU_CONFIG.RESOURCE_BUNDLES,
        IcuResourceBundle.CALENDAR_GEGORIAN
    );


ICU_CONFIG.DEFAULT_LOCALE := 'it';
ICU_CONFIG.RESOURCE_BUNDLES := { json json json }

json json json isn übliches, serialisiertes *.res-File aus dem "locales"-Verzeichnis eines ICU-Resource Bundles, nur via Symfony Resource Loader auf ein Message-Format "geflattet".

Have fun.
  View user's profile Private Nachricht senden
 
Ähnliche Themen HTML 5 CSS Best Practices
Mailversand von Chrono Forms in Joomla
Forms for Web, Streamserve -> Info gesucht
illustrator forms in flash movieclips konvertieren
MyODBC an Acrobat PDF Forms/Lifecycle Designer anbinden
[css] Forms, Input und Submit & Borders (Firefox Problem
Neues Thema eröffnen   Neue Antwort erstellen
MGi Foren-Übersicht -> Programmierung


Du kannst keine Beiträge in dieses Forum schreiben.
Du kannst auf Beiträge in diesem Forum nicht antworten.
Du kannst an Umfragen in diesem Forum nicht mitmachen.