2011-07-08 12 views
5

Piszę aplikację w języku C# .Dla celów lokalizacji przenosimy wszystkie moje ciągi do zasobów.C# Jak radzić sobie z postacią Newline podczas przenoszenia ciągów do zasobów w celu lokalizacji?

Niektóre z przykładów ciągów:

  1. "First sentence.\n Second sentence."
  2. "wait..."

W pierwszym ciągiem jest znak nowej linii "\n" .Should przenieść znak nowej linii do zasobów zbyt.

W drugim ciągu, czy należy przenieść trzy kropki do zasobów, czy też powinienem podzielić ciąg na dwie części, takie jak "wait" + "..." i przenieść tylko "wait" do zasobów.

Używam Google translate przetłumaczyć ciągi do innych języków, a obawiam się, że znak nowej linii "\n" nie będzie dobrze przetłumaczyć na inny język przez Google translate, stąd moje wahanie, aby przenieść znak nowej linii do zasobów .

To jest moje pierwsze podejście do lokalizacji. Sugeruję, jeśli masz jakieś dalsze pomysły lub wskazujesz mnie we właściwym kierunku.

Dzięki.

Odpowiedz

10

Wierzę, że \ n nie będzie traktowane jako znak escape w renderowanym tekście.

Jeśli liczba wpisów w zasobach jest mała, można użyć przesunięcia + wpisać, aby dodać nową linię.

Inną opcją jest zamiana \n przez {0}, a następnie użycie String.Format() do wstawienia nowej linii tam, gdzie jest to konieczne.

+0

Dzięki! właśnie tego szukałem. Zastąpiłem wszystkie '\ n' przez' {0} '. W edytorze zasobów Zeta istnieje opcja zignorowania '{0} {1} {2}' itp. Z tłumaczenia przez ** Google-Translate **. – user835597

0

Uważam, że najlepszym sposobem jest uniknięcie dzielenia możliwych do utworzenia lokalnie łańcuchów gdziekolwiek jest to możliwe - podział ciągu zwiększa tylko szansę, że nie będzie możliwe prawidłowe zlokalizowanie ciągu znaków.

+0

To na wszelki wypadek, jeśli tłumaczymy ręcznie. Ale używam tego narzędzia [Zeta Resource Editor] (http://www.zeta-resource-editor.com/index.html). To narzędzie automatycznie tłumaczy twoje ciągi zasobów w innych językach automatycznie używają ** Google-translate **. – user835597