【问题标题】:c# How to deal with Newline character, when moving strings to resources for Localization purpose?c# 将字符串移动到资源以进行本地化时如何处理换行符?
【发布时间】:2011-10-01 09:22:00
【问题描述】:

我正在用 c# 编写一个应用程序。出于本地化目的,我将所有字符串移动到资源中。

字符串的一些例子:

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

在第一个字符串中有换行符"\n"。我是否也应该将换行符移动到资源中。

在第二个字符串中,我应该将三个点移动到资源中,还是应该将字符串分成两部分,例如 "wait" + "...",然后仅将 "wait" 移动到资源中。

我正在使用 Google-translate 将字符串翻译成其他语言,我担心换行符 "\n" 无法被 Google-translate很好地翻译成其他语言>,因此我犹豫是否将换行符移动到资源中。

这是我对本地化的第一次尝试。因此,如果您有任何进一步的想法或指出我正确的方向,请提出建议。

谢谢。

【问题讨论】:

    标签: c# localization newline multilingual


    【解决方案1】:

    我相信 \n 在呈现的文本中不会被视为转义字符。

    如果资源条目数较少,可以使用shift + enter添加新行。

    另一种选择是将\n 替换为{0},然后使用String.Format() 在需要的地方插入新行。

    【讨论】:

    • 谢谢!这正是我想要的。我已将所有\n 替换为{0}。在 Zeta 资源编辑器中,可以选择忽略 {0} {1} {2} 等被 Google-Translate 翻译。
    【解决方案2】:

    我认为最好的方法是尽可能避免拆分可本地化的字符串 - 拆分字符串只会增加无法正确本地化字符串的机会。

    【讨论】:

    • 如果您手动翻译,这是正确的。但我正在使用此工具Zeta Resource Editor。此工具会使用 Google-translate 自动将您的资源字符串自动翻译成其他语言b>.
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-07-21
    • 2012-02-08
    • 2011-08-29
    • 2013-11-13
    • 2015-12-01
    • 1970-01-01
    相关资源
    最近更新 更多