【问题标题】:Can I localize the dynamically changing string/text in cocoa我可以本地化可可中动态变化的字符串/文本吗
【发布时间】:2012-04-18 06:13:58
【问题描述】:

我在XCode4中对国际化的概念有点了解。步骤是

1.将字符串文件添加到项目中

2.在此字符串文件的检查器面板中,在本地化部分下,从列表中选择所需的本地化语言。

3.考虑一下我添加了英语和法语。

4.如果我想本地化字符串Hello,我需要在相关的字符串文件中添加键值对,例如Localizable.Sring(English)中的“Title”=“Hello”和“Title”=“Bonjour” Localizable.Sring(法语)

5.那么,我们就可以使用 NSLocalizedString(@"Title", nil); 读取英文和法文的本地化文本;

这很好用。

这是我的要求,我正在从Web服务读取一个字符串,我不知道字符串和字符串的长度,它可能是一个段落。每次发送请求时它可能会有所不同。

我需要阅读在运行时更改并转换为所需本地化字符串的文本,让我们考虑一下法语。我该怎么做。任何建议都将不胜感激。

【问题讨论】:

  • 您想要一个通用翻译器?

标签: objective-c macos cocoa localization


【解决方案1】:

我猜你知道所有可能的字符串。为什么不使用:

NSString *myDynamicString = ...
NSLocalizedString(myDynamicString, "dynamic string");

【讨论】:

  • 这对我不起作用。作为示例,我正在从文本字段中读取文本。我将语言类型设置为法语并启动了我的应用程序。我在文本字段中输入了 Hello 并单击了按钮采取以下行动。仍然是 Hello(英文文本)而不是法文文本 -(IBAction)displayText:(id)sender { NSString inputString = [inputTextDisplay stringValue]; NSString str= NSLocalizedString(inputString, "动态字符串"); NSLog(@"英文是%@",str); [文本显示 setStringValue:str]; }
  • 也就是说我们应该在本地化之前知道字符串。我们不能对我们不知道的文本进行本地化对吗?
  • 是的,当然。没有内置的通用翻译器:)你必须把它放在你的新字符串文件中:“hello”=“bonjour”;而在英文中,简单的“hello”=“hello”;
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-07-24
  • 1970-01-01
  • 2016-07-09
  • 1970-01-01
相关资源
最近更新 更多