A lokalizációs projekten dolgozom, és amikor megváltoztatom a nyelvet, a felhasználói felület megzavarodik, mert egyes fordítások nagyok. Tegyük fel például, hogy van egy gomb a "Select All" szöveggel. De ha ez franciául van lokalizálva, akkor „Sélectionner tout”-ként olvasható. Ez nagyobb, mint a Select All, és így a gui is érintett lesz. Van valami mód a gui lokalizálására is.
A felhasználói felület lokalizálása
- Meg kell mondania, hogy ez milyen projekt - WinForms, WPF, web stb. 12.04.2010
- ez egy webhely, és a változások alapvetően az Aspx oldalain vannak 12.04.2010
Válaszok:
mivel a "Select All" végleges szövege bármilyen hosszúságú szöveggé konvertálható, ami ebben a konkrét esetben a "Select All" "Sélectionner tout"-ra változik, és nem szeretné, hogy a felhasználói felület megzavaródjon, megadhatja a szélességet %-ban és reményt. hogy a végső szövegben elegendő hely van.
Nem vagyok benne biztos, hogy van-e mód a futás közbeni szélességgel a hossztól függően kezelni, mivel megszámolhatja a hosszt és pixelben megadhatja a szélességet, ez nem lesz jó ötlet. így legyen kevesebb szöveg, és adja meg a szélességet százalékban.
Azt javaslom, hogy hozzon létre egy ál-kultúrát ennek kezelésére.
A pszeudo kultúra tartalmazza a legnagyobb fordítást egy megadott karakterlánchoz az összes kultúra közül.
Például, ha van egy Resx-fájlja strings.resx névvel, és egy másik kultúra alapú fájlja lehet, hogy franciául strings.fr.resx, és egy másik holland, strings.nl.resx.
Ezután hozzon létre egy másik fájlt string.pseudocult.resx néven, a pseudocultot le kell cserélni bármely olyan kultúrára, amelyet nem támogatna, például a string.az.resx
strings.resx
< data name="Select_All" xml:space="preserve">
< value>Select All</value>
< /data>
strings.fr.resx
< data name="Select_All" xml:space="preserve">
< value>Sélectionner tout</value>
< /data>
strings.nl.resx
< data name="Select_All" xml:space="preserve">
< value>Alles selecteren</value>
< /data>
strings.az.resx
< data name="Select_All" xml:space="preserve">
< value>Sélectionner tout</value>
< /data>
Az az értéket úgy kell mérni, hogy megtaláljuk a leghosszabb karakterláncot GUI alapján a támogatott kultúrák fordításait felhasználva, ebben az esetben a leghosszabb GUI alapú fordítás a francia kultúrában volt. Ez lényegében megadja az alkalmazásban lévő vezérlőelemek minimális méretét, valamint betekintést nyújt abba, hogy érdemes-e módosítani a fordítást.
Ellenkező esetben, ha ezt ki akarja hagyni, tartsa meg az eredeti kívánt méret 5–300%-ánál kisebb és az eredeti méret 5–170%-ánál nagyobb szavakat tartalmazó vezérlőelemek méretét.
Egyszerűen nyissa meg a felhasználói felületet a Visual Studio Designerben, és állítsa be a Form
vagy UserControl
Localizable
tulajdonságát true
értékre. Ezzel a lépéssel automatikusan egy új .resx
fájl kerül hozzáadásra a felhasználói felület eleméhez, amely tartalmazza a tulajdonságok összes értékét. Ezeket az értékeket a rendszer az első lépésben alkalmazza, és akkor lép működésbe, ha az aktuális kultúrához megfelelő értékeket talál.
Ezután egyszerűen állítsa át a Language
tulajdonságot arra a nyelvre, amelyet támogatni szeretne, amelynek saját szövegkészlete és elrendezése van. Ha most bármilyen módosítást hajt végre a felhasználói felületen, akkor beállítja, hogy egy másik .resx
kerüljön hozzáadásra az összetevőhöz, és minden változtatás bekerüljön ebbe a fájlba.
Tehát egyszerűen hozza létre tetszés szerint a vezérlőt, állítsa a Localizable
tulajdonságot true
-re, állítsa át a Language
tulajdonságot az új támogatott nyelvre, és állítsa be a gui-t igény szerint.
A lokalizációról részletesebb cikk is található az MSDN-en.