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 |
|
|
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
|
|
|
|
|
sahnemuh
Dabei seit: 19.06.2003
Ort: /dev/null
Alter: 42
Geschlecht:
|
|
|
|
|
Anzeige
|
|
|
bacon
Threadersteller
Dabei seit: 24.10.2007
Ort: -
Alter: -
Geschlecht: -
|
Verfasst Mi 10.10.2012 06:54
Titel
|
|
|
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 ...
|
|
|
|
|
sahnemuh
Dabei seit: 19.06.2003
Ort: /dev/null
Alter: 42
Geschlecht:
|
Verfasst Mi 10.10.2012 08:02
Titel
|
|
|
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.).
|
|
|
|
|
fyll
Dabei seit: 20.09.2003
Ort: Augsburg
Alter: 39
Geschlecht:
|
Verfasst Mi 10.10.2012 10:03
Titel
|
|
|
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
|
|
|
|
|
bacon
Threadersteller
Dabei seit: 24.10.2007
Ort: -
Alter: -
Geschlecht: -
|
Verfasst Mi 10.10.2012 12:19
Titel
|
|
|
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
|
|
|
|
|
bacon
Threadersteller
Dabei seit: 24.10.2007
Ort: -
Alter: -
Geschlecht: -
|
Verfasst Mi 10.10.2012 13:41
Titel
|
|
|
// 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
|
|
|
|
|
bacon
Threadersteller
Dabei seit: 24.10.2007
Ort: -
Alter: -
Geschlecht: -
|
Verfasst Fr 12.10.2012 11:43
Titel
|
|
|
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.
|
|
|
|
|
|
|
|
Ä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
|
|