Internacionalizace ve svých projektech

hlasů
44

Jak jste implementována Internacionalizace (i18n) v aktuálních projektech, které jste pracovali?

Vzal jsem zájem o software pro vytváření cross-cultural poté, co jsem četl slavného příspěvek Joel, absolutní minimum Každý Software Developer Rozhodně Pozitivně je třeba vědět o Unicode a znakové sady (žádné výmluvy!) . Musím však ještě možnost využít tuto skutečnost v reálném projektu, kromě ujistit Použil jsem řetězce Unicode, kde je to možné. Ale dělat všechny vaše řetězce Unicode a zajistit, abyste pochopili, co kódování vše, co pracují s již je jen špička ledovce i18n.

Všechno, co jsem pracoval na k dnešnímu dni bylo pro řízenou sadu USA anglicky mluvící lidi, nebo i18n prostě není něco, co bychom měli čas pracovat na před zatlačením projekt žít. Takže jsem hledal nějaké tipy a válečné příběhy lidé mají o software pro vytváření více lokalizované v reálných projektech.

Položena 04/08/2008 v 01:08
zdroj uživatelem
V jiných jazycích...                            


11 odpovědí

hlasů
48

Byla to chvíle, takže to není úplný.

znakové sady

Unicode je skvělý, ale nemůžete dostat pryč s ignorovat jiné znakové sady. Výchozí znaková sada Windows XP (angličtina) je CP1252. Na webu, vy nevíte, co prohlížeč vás pošle (i když snad váš kontejner bude zpracovávat většinu z toho). A nebuďte překvapeni, když tam jsou chyby v jakékoli implementace, který používáte. znakové sady mohou mít zajímavé interakce s názvy souborů, když se dostanou na úroveň mezi stroji.

překlady Strings

Překladatelé jsou, obecně řečeno, není kodéry. Pokud budete posílat zdrojový soubor na překladatele, budou ji zlomit. Řetězce by měly být rozbaleny do zdrojů soubory (např vlastností souborů v jazyce Java či knihoven DLL prostředku v Visual C ++). Překladatelé by měly být soubory, které jsou těžko prolomit a nástroje, které nenechte se jim zlomit.

Překladatelé nevědí, kde struny pocházejí z výrobku. Je obtížné přeložit řetězec bez kontextu. Pokud nechcete poskytnout vodítko, bude kvalita překladu trpět.

Zatímco na téma kontextu můžete vidět stejný řetězec „foo“, objevit se v několika časech a myslím, že by bylo efektivnější mít všechny instance v UI bodu na stejný zdroj. To není dobrý nápad. Slova mohou být velmi kontextová v některých jazycích.

Překlady řetězce stojí peníze. Pokud uvolníte novou verzi produktu, to dává smysl, aby obnovit staré verze. Mít nástroje k překonání řetězců ze starého zdrojových souborů.

Zřetězení a ruční manipulace s řetězci by mělo být minimalizováno. případně použít funkce formátu.

Překladatelé musí být schopni upravit klávesové zkratky. Ctrl+ PJe tisk v angličtině; Němci používají Ctrl+ D.

Máte-li proces překladu, který vyžaduje, aby někdo ručně broušeného a vkládání struny kdykoli jste si o problémy.

Datum, čas, kalendáře, měna, číslo formáty, časová pásma

Ty mohou být všechny se liší od země k zemi. Čárka může být použita k označení desetinných míst. Časy mohou být v 24hodinovou zápisu. Ne každý používá gregoriánský kalendář. Musíte být jednoznačné, taky. Pokud jste se postarat zobrazit data jako DD / MM / YYYY v USA a DD / MM / YYYY pro Spojené království na svých webových stránkách, že data jsou nejednoznačné, pokud uživatel ví, že jste to udělal.

zvlášť měny

Locale funkce poskytované v knihovnách tříd vám poskytne místní symbol měny, ale nemůžete jen držet libru (mincovní) nebo symbol eura před hodnotu, která dává cenu v dolarech.

Uživatelské rozhraní

Rozvržení by měla být dynamická. Nejen, že jsou řetězce, které by mohly zdvojnásobit délku o překladu, může celá UI je třeba převrácený (hebrejsky, arabsky), takže ovládací prvky spustit zprava doleva. A to je, než se dostaneme do Asie.

Testování před Překlad

  • Použít statickou analýzu vašeho kódu lokalizovat problémy. Na minimum, využívat nástroje zabudované do IDE. (Uživatelé Eclipse může jít do oken> Předvolby> Jáva> Compiler> chyby / varování a kontrola bez externalizovaných řetězce.)
  • Kouř test simuluje překlad. Není to těžké analyzovat soubor prostředků a nahrazování řetězců s pseudo-přeložena verzi, která zdvojnásobuje délku a vloží funky znaky. Nemusíte mluvit jazykem používat cizí operační systém. Moderní systémy by měly nechat se přihlásíte jako cizí uživatel s přeloženými strun a cizí národní prostředí. Pokud jste obeznámeni s operačním systémem, můžete přijít na to, co dělá to, co bez znalosti jediného slova jazyka.
  • Klávesové mapy a znakové sady odkazy jsou velmi užitečné.
  • Virtualizace by bylo velmi užitečné zde.

Non-technické problémy

Někdy musíte být citlivý ke kulturním rozdílům (trestný čin nebo nepochopení může mít za následek). Chyba často uvidíte je používání vlajek jako vizuální narážka vybírá jazyk webové stránky nebo geografii. Pokud chcete, aby váš software deklarovat strany v globální politice, je to špatný nápad. Pokud jste byli Francouzi a nabídl možnost pro angličtinu s sv vlajku (vlajka Anglie je červený kříž v bílém poli), může to mít za následek zmatek pro mnoho anglických reproduktorů - předpokládat podobné problémy vzniknou s cizími jazyky a země , Ikony musí být prověřeni kulturní význam. Co dělá palec nahoru nebo zelená klíště znamená? Jazyk by měl být relativně neutrální - oslovení uživatelů ve zvláštním způsobem mohou být přijatelné v jednom regionu, ale zvažováno hrubý v jiné zemi.

Zdroje

C ++ a Java programátoři mohou najít na internetových stránkách JIP užitečný: http://www.icu-project.org/

Odpovězeno 04/08/2008 v 18:58
zdroj uživatelem

hlasů
15

Některé zábavné věci:

  1. Mít PHP a MySQL aplikace, která pracuje dobře německy a francouzsky, ale teď potřebuje podporu Ruska a Číny. Myslím, že se pohybují nad tím .NET, protože podpora PHP Unicode je - podle mého názoru - není opravdu dobrá. Jistě, žonglování kolem utf8_de / zakódování nebo mbstring-funkce je zábava. Skoro stejně zábavné jako s Freddy Krüger vás navštívit v noci ...

  2. Si uvědomit, že některé jazyky jsou mnohem Verbose než ostatní. Němec je mnohem více mnohomluvný než v angličtině obvykle, a když viděl, jak se německá verze ničí uživatelského rozhraní, protože příliš málo prostoru bylo přiděleno nebylo zábavné. Některé produkty získal nějakou slávu pro své kreativní způsoby, jak obejít to, že se v zapomnění je „Schw.Tr.d.Le.En.W.“ bytí památný :-)

  3. Hraní si s formáty data paráda! Ano, tam jsou vlastně lidé na světě, kteří používají formát data, kdy uplyne den ve středu. Sooooo mnohem zábavnější se snaží zjistit, co 07.2.2008 má znamenat, jen proto, že někteří uživatelé by se mohl domnívat, že by mohla být 2.července ... Ale na druhou stranu, vy přes rybník může domnívat, to samé o uživatele, kteří dal měsíc ve středu :-P, a to zejména proto, že v angličtině, 2. července zní mnohem lépe než 2. července, něco, co není neccessarily platit pro jiné jazyky (tedy v němčině, měli byste nikdy neříkej Juli 2, ale vždy zweiter Juli). Používám 2008-02-07 kdykoli je to možné. Je jasné, že to znamená, 7.února a to správně třídí, ale dd / mm vs. mm / dd může být opravdu složité problém.

  4. Anoter zábavná věc, Formáty čísel ! 10.000,50 vs 10,000.50 vs. 10 000,50 vs. 10'000,50 ... To je moje největší noční můra právě teď, které mají podporovat multi-kulturní environent ale nemají žádný způsob, jak spolehlivě zjistit, co číselný formát uživatelské použije.

  5. Formální nebo neformální. V některých jazyka, existují dva způsoby, jak řešit lidi, formální způsob a více neformální cestou. V angličtině, stačí říct „You“, ale v němčině budete muset rozhodnout mezi formálním „Sie“ a neformální „Du“, stejné pro lesní Tu / Vous. Je to obvykle sázka na jistotu vybrat formální cestu, ale to je snadno přehlédnout.

  6. Kalendáře. V Evropě, první den v týdnu je pondělí, zatímco ve Spojených státech je neděle. Kalendář widgety jsou pěkné. Zobrazující kalendář se v neděli na levé a sobotu o právu na evropské uživatele není tak pěkné, to mate je.

Odpovězeno 04/08/2008 v 01:35
zdroj uživatelem

hlasů
8

Pracoval jsem na projektu pro své předchozí zaměstnavatele, který používal .NET, a tam byl postaven v RESX formátu jsme použili. V podstatě jsme měli soubor, který měl všechny překlady v souboru RESX a pak více souborů s různými překladů. Důsledkem toho je, že musíte být velmi pečlivě o zajištění toho, aby všechny řetězce viditelné v aplikaci jsou uloženy v RESX, a kdykoliv jeden je ke změně budete muset aktualizovat všechny jazyky, které podporují.

Pokud jste líní a nemají upozornit lidi na starosti překladů, nebo vložit řetězce, aniž by prostřednictvím lokalizační systém, bude to noční můra, aby se pokusila opravit později. Stejně tak, pokud lokalizace je nápad, že bude velmi obtížné zavést. Sečteno a podtrženo, pokud nemáte všechny viditelné nitky uložené externě ve standardním místě, bude velmi obtížné najít vše, co je třeba lokalizovat.

Jedním z dalších poznámka, velmi striktně vyhnout zřetězení viditelné řetězce přímo, jako je

String message = "The " + item + " is on sale!";

Místo toho je třeba použít něco jako

String message = String.Format("The {0} is on sale!", item);

Důvodem je to, že různé jazyky často objednávají slova jinak, a zřetězení struny přímo bude potřebovat nové sestavení opravit, ale pokud jste použili nějaký druh náhradního string mechanismu jako výše, můžete upravit soubor RESX (nebo cokoliv lokalizace soubory, které používají) pro konkrétní jazyk, který potřebuje změnit pořadí slov.

Odpovězeno 04/08/2008 v 01:23
zdroj uživatelem

hlasů
5

Jen jsem poslouchal podcast od Scott Hanselman dnes ráno, kde se hovoří o internacionalizaci, zejména opravdu choulostivé věci, jako je turecký (s jeho čtyřmi i je) a Thai. Také, Jeff Atwood měl příspěvek :

Odpovězeno 04/08/2008 v 16:04
zdroj uživatelem

hlasů
3

Kromě všech dosavadních tipů, si uvědomit, že i18n není to jen o změnu slov na jejich ekvivalent v jiných jazycích, zejména pro non-latinském jazyce abeced (korejsky, arabsky), které psaných zprava doleva, takže celá UI bude muset přizpůsobit, stejně jako

  • položka 1
  • položka 2
  • položka 3

by musel být

arabský text 1 -

arabský text 2 -

arabský text 3 -

(Obráceně seznam kulka Nezdá se, že práce: P)

což může být UI noční můra, pokud váš systém musí použít změny dynamicky, jakmile uživatel změní jazyk používán.

Další velmi tvrdá věc je testovat různé jazyky, a to nejen za správnost slova, ale protože jazyky jako korejský mají obvykle větší typ písma pro své postavy, což může vést k jazykovým konkrétních chyb (jako „zachránit“ text na tlačítku je větší než tlačítka sám nějakého jazyka).

Odpovězeno 22/09/2008 v 00:44
zdroj uživatelem

hlasů
2

Jedním z zábavnější věci objevovat: kurzíva a tučné písmo makrup nepracuje s CJK (čínština / japonština / korejský) znaky. Prostě nečitelný. (OK, já opravdu nemohli přečíst dříve, než jeden, ale především Bolding jen vytváří skvrny inkoustu)

Odpovězeno 14/10/2008 v 13:39
zdroj uživatelem

hlasů
1

Dalším úkolem bude přijímat informace od svých uživatelů. V mnoha případech to je usnadněno zpracování vstupního poskytované operačním systémem, jako je například IME v systému Windows, který pracuje transparentně s běžnými textovými widgety, ale toto zařízení nebude k dispozici pro všechny možné potřeby.

Odpovězeno 27/12/2008 v 07:48
zdroj uživatelem

hlasů
1

Navrhuji použít něco jako 99translations.com udržet své překlady. V opačném případě se nebude moci říct, co ze svých překladů jsou aktuální ve všech jazycích.

Odpovězeno 27/12/2008 v 05:05
zdroj uživatelem

hlasů
1

Myslím, že každý pracuje v internacionalizace by měli být obeznámeni s Common Locale datového úložiště, který je nyní sub-projekt Unicode:

Common Locale Data Repository

Ti lidé se snažíme vytvořit standardní zdroj pro všechny druhy otázek I18N: měny, zeměpisných názvů, tuny věcí. Každý projekt, který je udržuje své vlastní jádro místních dat za předpokladu, že tento projekt existuje, je docela zešílel, IMHO.

Odpovězeno 18/09/2008 v 20:25
zdroj uživatelem

hlasů
0

Jedna věc, kterou nikdo ještě zmínil se struny s nějakým warying část jako v „Jednotka bude arive do 5 dnů“ nebo „V pondělí se něco stane.“ kde 5 av pondělí se bude měnit v závislosti na stavu. To není dobrý nápad rozdělit ty dva a spojovat je. Pouze s jedním pohybujícím dílem a dobrou dokumentaci byste mohli dostat pryč s ním, se dvěma měnícími se částmi tam bude nějaký jazyk, který preferuje změnit pořadí z nich.

Odpovězeno 07/10/2008 v 11:56
zdroj uživatelem

hlasů
0

Jeden web používám má metody převodu majitel volá „wiki + strojový překlad“. Jedná se o lokalitu komunitní takže je samozřejmě liší podle potřeb podniků.

http://blog.bookmooch.com/2007/09/23/how-bookmooch-does-its-translations/

Odpovězeno 10/09/2008 v 16:12
zdroj uživatelem

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more