Megjegyzés
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhat bejelentkezni vagy módosítani a címtárat.
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhatja módosítani a címtárat.
Ez az oktatóanyag bemutatja, hogyan hozhat létre honosított alkalmazást a LocBaml eszközzel.
Megjegyzés:
A LocBaml eszköz nem éles használatra kész alkalmazás. Mintaként jelenik meg, amely néhány honosítási API-t használ, és bemutatja, hogyan írhat honosítási eszközt.
Áttekintés
Ez a cikk lépésről lépésre ismerteti az alkalmazások honosítását. Először készítse elő az alkalmazást, hogy a lefordítandó szöveg kinyerhető legyen. A szöveg lefordítása után egyesítheti a lefordított szöveget az eredeti alkalmazás új példányával.
Mintaalkalmazás létrehozása
Ebben a lépésben előkészíti az alkalmazást a honosításra. A Windows Presentation Foundation (WPF) mintáiban egy HelloApp-minta jelenik meg, amely a jelen vitafórumban szereplő kódmintákhoz lesz felhasználva. Ha ezt a mintát szeretné használni, töltse le az XAML-fájlokat a LocBaml eszközmintából.
Fejlessze az alkalmazást arra a pontra, ahol el szeretné kezdeni a honosítást.
Adja meg a fejlesztési nyelvet a projektfájlban, hogy az MSBuild létrehozzon egy fő szerelvényt és egy műholdas szerelvényt (egy .resources.dll kiterjesztésű fájlt), amely a semleges nyelvi erőforrásokat tartalmazza. A HelloApp-minta projektfájlja a HelloApp.csproj. Ebben a fájlban a fejlesztési nyelv a következő módon van azonosítva:
<UICulture>en-US</UICulture>Adjon hozzá UID-ket az XAML-fájlokhoz. A felhasználói azonosítók a fájlok módosításainak nyomon követésére és a lefordítandó elemek azonosítására szolgálnak. Ha uid-okat szeretne hozzáadni a fájlokhoz, futtassa
updateuida projektfájlban:msbuild -t:updateuid helloapp.csprojAnnak ellenőrzéséhez, hogy nincsenek-e hiányzó vagy duplikált azonosítók, futtassa a következőt
checkuid:msbuild -t:checkuid helloapp.csprojA fájloknak
updateuidfuttatása után felhasználói azonosítókat kell tartalmazniuk. A HelloApp Pane1.xaml fájljában például a következőket kell megtalálnia:<StackPanel x:Uid="StackPanel_1"> <TextBlock x:Uid="TextBlock_1">Hello World</TextBlock> <TextBlock x:Uid="TextBlock_2">Goodbye World</TextBlock> </StackPanel>
A semleges nyelvű erőforrások műholdas szerelvényének létrehozása
Miután az alkalmazás konfigurálva van egy semleges nyelvű erőforrások műholdas szerelvényének létrehozására, létre kell hoznia az alkalmazást. Ez létrehozza a fő alkalmazás-összeállítást, valamint a LocBaml által a honosításhoz szükséges semleges nyelvű erőforrás-összeállítást.
Az alkalmazás létrehozása:
A HelloApp fordítása dinamikus csatolású kódtár (DLL) létrehozásához:
msbuild helloapp.csprojAz újonnan létrehozott főalkalmazás-szerelvény (HelloApp.exe) a következő mappában jön létre: C:\HelloApp\Bin\Debug
Az újonnan létrehozott semleges nyelvű erőforrások műholdas szerelvénye (HelloApp.resources.dll) a következő mappában jön létre: C:\HelloApp\Bin\Debug\en-US
A LocBaml eszköz létrehozása
A LocBaml létrehozásához szükséges összes fájl a WPF-mintákban található. Töltse le a C#-fájlokat a LocBaml eszközmintából.
A parancssorból futtassa a projektfájlt (locbaml.csproj) az eszköz létrehozásához:
msbuild locbaml.csprojNyissa meg a Bin\Release könyvtárat az újonnan létrehozott végrehajtható fájl (locbaml.exe) megkereséséhez. Példa: C:\LocBaml\Bin\Release\locbaml.exe
A LocBaml futtatásakor megadható beállítások a következők.
Lehetőség Leírás parsevagy-pBaml-, erőforrás- vagy DLL-fájlokat elemez egy .csv vagy .txt fájl létrehozásához. generatevagy-gHonosított bináris fájlt hoz létre lefordított fájl használatával. outvagy-o{filedirectory]A kimeneti fájl neve culturevagy-cul{culture]A kimeneti összeállítások területi beállítása. translationvagy-trans{translation.csv]Lefordított vagy honosított fájl. asmpathvagy-asmpath{filedirectory]Ha az XAML-kód egyéni vezérlőket tartalmaz, meg kell adnia asmpath-t az egyéni vezérlőszerelvénynek.nologoNem jelenít meg emblémát vagy szerzői jogi információkat. verboseRészletes információkat jelenít meg a módról. Megjegyzés:
Ha az eszköz futtatásakor szüksége van a beállítások listájára, írja be
LocBaml.exe, majd nyomja le az Enter billentyűt.
Fájl elemzése a LocBaml használatával
Most, hogy létrehozta a LocBaml eszközt, készen áll arra, hogy használja a HelloApp.resources.dll elemzésére, hogy kinyerje a honosítani kívánt szöveges tartalmat.
Másolja LocBaml.exe az alkalmazás bin\debug mappájába, ahol a fő alkalmazásszerelvény létrejött.
A műholdas szerelvényfájl elemzéséhez és a kimenet .csv fájlként való tárolásához használja a következő parancsot:
LocBaml.exe /parse HelloApp.resources.dll /out:Hello.csvMegjegyzés:
Ha a bemeneti fájl (HelloApp.resources.dll) nem ugyanabban a könyvtárban van, mint LocBaml.exe áthelyezni az egyik fájlt, hogy mindkét fájl ugyanabban a könyvtárban legyen.
Amikor a LocBaml parancsot futtatja a fájlok elemzéséhez, a kimenet hét mezőből áll, amelyeket vesszővel (.csv fájlokkal) vagy tabulátorokkal (.txt fájlokkal) tagolt. Az alábbiakban a HelloApp.resources.dllelemezett .csv fájlja látható:
Elemezett .csv fájl HelloApp.pl.en-US.resources:window1.baml,Stack1:System.Windows.Controls.StackPanel.$Content,Ignore,FALSE, FALSE,,#Text1;#Text2; HelloApp.g.en-US.resources:window1.baml,Text1:System.Windows.Controls.TextBlock.$Content,None,TRUE, TRUE,,Hello World HelloApp.g.en-US.resources:window1.baml,Text2:System.Windows.Controls.TextBlock.$Content,None,TRUE, TRUE,,Viszlát Világ A hét mező a következő:
BAML-név. A BAML-erőforrás neve a forrásnyelvi műholdas szerelvény tekintetében.
Erőforráskulcs. A honosított erőforrás-azonosító.
Kategória. Az érték típusa. Lásd: Honosítási attribútumok és megjegyzések.
olvashatóság. Azt jelzi, hogy az érték beolvasható-e egy honosító által. Lásd: Honosítási attribútumok és megjegyzések.
Módosíthatóság. Azt jelzi, hogy az érték módosítható-e egy honosítóval. Lásd: Honosítási attribútumok és megjegyzések.
Megjegyzések. Az érték további leírása az érték honosított módjának meghatározásához. Lásd: Honosítási attribútumok és megjegyzések.
Érték. A kívánt kultúrára lefordítandó szöveges érték.
Az alábbi táblázat bemutatja, hogy ezek a mezők hogyan vannak megfeleltetve a .csv fájl elválasztott értékeinek:
BAML-név Erőforráskulcs Kategória Olvashatóság Módosíthatóság Megjegyzések Érték HelloApp.g.en-US.resources:window1.baml Stack1:System.Windows.Controls.StackPanel.$Content Hagyd figyelmen kívül HAMIS HAMIS #Text1;#Text2 HelloApp.g.en-US.resources:window1.baml Text1:System.Windows.Controls.TextBlock.$Content Egyik sem IGAZ IGAZ Helló világ HelloApp.g.en-US.resources:window1.baml Text2:System.Windows.Controls.TextBlock.$Content Egyik sem IGAZ IGAZ Viszlát világ Figyelje meg, hogy a Megjegyzések mező összes értéke nem tartalmaz értékeket; ha egy mező nem rendelkezik értékkel, üres. Azt is megfigyelheti, hogy az első sorban lévő elem nem olvasható és nem módosítható, kategóriaértékként pedig "Figyelmen kívül hagyva", ami azt jelzi, hogy az érték nem honosítható.
Ha szeretné megkönnyíteni a honosítható elemek felderítését az elemzett fájlokban, különösen nagy fájlokban, kategóriák,olvashatóság és módosíthatóság szerint rendezheti vagy szűrheti az elemeket. Szűrheti például az olvashatatlan és a nem módosítható értékeket.
Honosítható tartalom fordítása
A kinyert tartalom fordításához használja az elérhető eszközöket. Ennek jó módja, ha egy .csv fájlba írja az erőforrásokat, és megtekinti őket a Microsoft Excelben, és az utolsó oszlopra (értékre) módosítja a fordítást.
Új .resources.dll fájl létrehozása a LocBaml használatával
A HelloApp.resources.dll LocBaml-lel való elemzésével azonosított tartalom lefordítva lett, és vissza kell vonni az eredeti alkalmazásba. Az új .resources.dll fájl létrehozásához használja a generate vagy -g lehetőségek valamelyikét.
Az alábbi szintaxissal új HelloApp.resources.dll fájlt hozhat létre. Jelölje meg a kultúrát mint en-US (/cul:en-US).
LocBaml.exe /generate HelloApp.resources.dll /trans:Hello.csv /out:c:\ /cul:en-USMegjegyzés:
Ha a bemeneti fájl (Hello.csv) nem ugyanabban a könyvtárban található, mint a végrehajtható, LocBaml.exe, helyezze át az egyik fájlt úgy, hogy mindkét fájl ugyanabban a könyvtárban legyen.
Cserélje le a régi HelloApp.resources.dll fájlt a C:\HelloApp\Bin\Debug\en-US\HelloApp.resources.dll könyvtárban az újonnan létrehozott HelloApp.resources.dll fájlra.
A "Hello World" és a "Goodbye World" kifejezéseket most már le kell fordítani az alkalmazásodban.
Ha egy másik kultúrára szeretne lefordítani, használja a lefordított nyelv kultúráját. Az alábbi példa bemutatja, hogyan fordítható le francia-kanadai nyelvre:
LocBaml.exe /generate HelloApp.resources.dll /trans:Hellofr-CA.csv /out:c:\ /cul:fr-CAA fő alkalmazási szerelvénnyel azonos szerelvényen belül hozzon létre egy új, kultúraspecifikus mappát az új műholdas szerelvény számára. Francia-kanadai esetén a mappa fr-CAlenne.
Másolja a létrehozott műholdas szerelvényt az új mappába.
Az új műholdas szerelvény teszteléséhez módosítania kell az alkalmazást futtató kultúrát. Ezt kétféleképpen teheti meg:
Módosítsa az operációs rendszer területi beállításait.
Az alkalmazásban adja hozzá a következő kódot a App.xaml.cs:
<Application xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" x:Class="SDKSample.App" x:Uid="Application_1" StartupUri="Window1.xaml"> </Application>using System.Windows; using System.Globalization; using System.Threading; namespace SDKSample { public partial class App : Application { public App() { // Change culture under which this application runs CultureInfo ci = new CultureInfo("fr-CA"); Thread.CurrentThread.CurrentCulture = ci; Thread.CurrentThread.CurrentUICulture = ci; } } }Imports System.Windows Imports System.Globalization Imports System.Threading Namespace SDKSample Partial Public Class App Inherits Application Public Sub New() ' Change culture under which this application runs Dim ci As New CultureInfo("fr-CA") Thread.CurrentThread.CurrentCulture = ci Thread.CurrentThread.CurrentUICulture = ci End Sub End Class End Namespace
Tippek a LocBaml használatához
Az egyéni vezérlőket meghatározó függő szerelvényeket át kell másolni a LocBaml helyi könyvtárába, vagy telepíteni kell a GAC-ba. Erre azért van szükség, mert a honosítási API-nak hozzáféréssel kell rendelkeznie a függő szerelvényekhez, amikor beolvassa a bináris XAML-t (BAML).
Ha a főszerelvény aláírva van, a létrehozott erőforrás DLL-t is alá kell írni ahhoz, hogy betöltse.
A honosított erőforrás DLL-verzióját szinkronizálni kell a főszerelvénysel.
Lásd még
.NET Desktop feedback