Faile lokalizacji (i jej obsługi) w oprogramowaniu klasy enterprise to coś co zdarza się raczej rzadko, ale akurat mam teraz przyjemność z tym się "babrać", więc sie wypowiem i może dam parę wskazówek dla innych:
1 Jeżeli aplikacja potrafi łatwo wyświetlić kwotę w formacie poprawnym lokalnie, niech też przyjmuje kwotę w formacie lokalnym i niech nie nad-interpretuje separatorów tysięcznych. Przykład: kwota 10 000,99 PLN wyświetlana jest OK. Przekopiowanie jej do pola przyjmującego kwotę skutkuje czymś idiotycznym: 1000099000.00 PLN. Inne pole z kolei nie przyjmuje spacji ani przecinka. Co sprowadza nas do:
2 Używaj jednego modułu lokalizacyjnego do całej aplikacji. Jeżeli w jednym miejscu data jest wyświetlana w formie 2014/08/29, w innym 29-08-2014 a w jeszcze innym 08.29.2014 znaczy że coś jest nie tak. To samo się tyczy zapisu cen - zł10000 wygląda dziwnie. $10000 wygląda OK. Prefix/postfix i separacja symbolu waluty od kwoty różnią się i to bardzo.
3 Edycja nazw lokalizacyjnych w gui to dobry pomysł. Templatki wykorzystujące nazwę w danym języku to dobry pomysł. Brak spójności w tym co można wprowadzić do templatki a co nie to zły pomysł.
4 Powiązane z powyższym - Jeżeli w jednym miejscu są templatki a w drugim, bardzo podobnym nie ma, to znaczy że masz niespójny system. Przykład: Mgę definiować nazwę dla samochodu w PL "Samochód" w EN "Car" itp ale w jego częściach już nie (czyli mam "Engine" "Tires" itp)
5 Stosuj stałe identyfikatory lokalizacyjne. en_US jest różne od en_GB, więc nie są równoznaczne. Mają inne formaty dat, kwot itp. Różnice Color/Colour tez są. Okropnym niedociągnięciem jest także gdy jedne moduł używa pełnej specyfikacji (en_US) a inny spodziewa się dwu znakowego określenia (en)
6 Liczebniki są skomplikowane. Polecam zajrzeć tu: http://unicode.org/repos/cldr-tmp/trunk/diff/supplemental/language_plural_rules.html Głupio wygląda np "5 Swetry" albo "3 Swetrów".
I ostatnie: L10N i I18N nie są tym samym (ale są powiązane). I to na tyle ważny element systemu że lepiej nie wysyłać go do Klepaczstanu gdzie znajdzie się programista za $1/dzień.
@Johnny_Bit: "Konsystencja"? Precz z kalkami z angielskiego! Nie zapominajmy o polskich odpowiednikach. Konsekwecja, spójność - to polskie wersje. "Konsystencja" w języku polskim odnosi się do postaci materialnej materiału sypko-płynnego. Czyżby UK? http://sjp.pl/konsystencja
@vpiotr: Dzięki za zwrócenie uwagi - przy okazji poprawiłem parę literówek :D
przy okazji poprawiłem parę literówek
@Johnny_Bit: Ale nie wszystkie >:D I ostanie nam ino L10N :D
@ShookTea: OK... nie rozumie ;) gdzie mam błąd (znajdowanie własnych błędów jest trudne bez debuggera)
I ostanie: L10N i I18N
@Johnny_Bit: "I ostanie: L10N i I18N" - ostanie, czy ostatnie?
@Johnny_Bit: dzięki za ciekawego linka o liczebnikach. interesuję się językoznawstwem, nie mogłem sobie odmówić porównania wszystkich języków słowiańskich.
Wychodzi że: białoruski, rosyjski, ukraiński i serbsko-chorwacki (serbski, chorwacki, bośniacki) mają identyczną skomplikowaną regułę. Polski ma do nich podobną. Pozostałe (słoweński, bułgarski, macedoński, czeski, słowacki) są w różnym stopniu zdegenerowane ;-)