Megosztás a következőn keresztül:


Útmutató: Alkalmazás honosítása

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.

  1. Fejlessze az alkalmazást arra a pontra, ahol el szeretné kezdeni a honosítást.

  2. 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>

  3. 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 updateuid a projektfájlban:

    msbuild -t:updateuid helloapp.csproj

    Annak 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.csproj

    A fájloknak updateuid futtatá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:

  1. A HelloApp fordítása dinamikus csatolású kódtár (DLL) létrehozásához:

    msbuild helloapp.csproj

  2. Az újonnan létrehozott főalkalmazás-szerelvény (HelloApp.exe) a következő mappában jön létre: C:\HelloApp\Bin\Debug

  3. 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

  1. 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.

  2. A parancssorból futtassa a projektfájlt (locbaml.csproj) az eszköz létrehozásához:

    msbuild locbaml.csproj

  3. Nyissa 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

  4. A LocBaml futtatásakor megadható beállítások a következők.

    Lehetőség Leírás
    parse vagy -p Baml-, erőforrás- vagy DLL-fájlokat elemez egy .csv vagy .txt fájl létrehozásához.
    generate vagy -g Honosított bináris fájlt hoz létre lefordított fájl használatával.
    out vagy -o {filedirectory] A kimeneti fájl neve
    culture vagy -cul {culture] A kimeneti összeállítások területi beállítása.
    translation vagy -trans {translation.csv] Lefordított vagy honosított fájl.
    asmpath vagy -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.
    nologo Nem jelenít meg emblémát vagy szerzői jogi információkat.
    verbose Ré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.

  1. Másolja LocBaml.exe az alkalmazás bin\debug mappájába, ahol a fő alkalmazásszerelvény létrejött.

  2. 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.csv

    Megjegyzé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.

  3. 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ő:

    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ó.

  4. 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.

  1. 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-US

    Megjegyzé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.

  2. 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.

  3. A "Hello World" és a "Goodbye World" kifejezéseket most már le kell fordítani az alkalmazásodban.

  4. 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-CA

  5. A 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.

  6. Másolja a létrehozott műholdas szerelvényt az új mappába.

  7. 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