标签: localizable.strings

在android中使用不同的字符串文件

我将我的iPhone应用程序移植到android,现在我遇到了字符串文件的问题.

该应用程序是一个翻译工具,用户可以切换语言,因此所有本地化的字符串都使用两种语言,并且它们独立于操作系统的运行区域.

对于iOS版本,我有不同的文件,如de.strings,en.strings和fr.strings等.对于具有指定语言对的每个目标,我从字符串表中读取字符串,例如对于de-fr,我将在项目中包含de.strings和fr.strings,并在info-list文件中设置字符串表的名称并读取字符串从他们.最后,我有一个项目包含不同的目标(具有不同的信息列表文件),并且所有项目都配置得很好.

我打算在Android平台上做同样的事情,但是

  1. 每个项目只允许一个strings.xml吗?

  2. 如何设置不同的构建目标?例如,我的de-fr和de-en翻译应用程序实际上是两个应用程序,唯一的区别是语言对.如何设置某些内容以便我可以使用一个项目生成两个应用程序?在XCode中它很简单,但我找不到eclipse的解决方案.

  3. 如何为每个目标指定应该读取哪个strings.xml?

感谢您的回答,但请注意,我需要与操作系统区域设置无关的语言设置,即如果用户将操作系统区域设置从en更改为de,我的应用程序仍会显示英文本地化字符串.我问的实际上是如何设置像prebuild这样的东西并为不同的目标加载不同的字符串文件.

xml string build-automation android localizable.strings

6
推荐指数
1
解决办法
7014
查看次数

使用无数字的多个字符串

我对.stringsdict 文档感到有点困惑(滚动到"本地化属性列表文件").

给定了大量文件,我想显示保存文件或相应保存保存文件.我认为以下内容可行,但事实并非如此.

在代码中:

NSString *string = [NSString localizedStringWithFormat:NSLocalizedString(@"%Save Files", @""), (long)files.count];
Run Code Online (Sandbox Code Playgroud)

Localizable.stringsdict:

<key>Save Files</key>
<dict>
    <key>NSStringLocalizedFormatKey</key>
    <string>Save %#@files@</string>
    <key>files</key>
    <dict>
        <key>NSStringFormatSpecTypeKey</key>
        <string>NSStringPluralRuleType</string>
        <key>NSStringFormatValueTypeKey</key>
        <string>ld</string>
        <key>one</key>
        <string>File</string>
        <key>other</key>
        <string>Files</string>
    </dict>
</dict>
Run Code Online (Sandbox Code Playgroud)

始终显示保存文件,无论计数.

我究竟做错了什么?

macos plural localizable.strings ios ios7

6
推荐指数
1
解决办法
1462
查看次数

有没有办法让NSBundle本地化缓存无效,重启应用程序?[iOS的]

假设我们可以在运行时更改Localizable.strings,它放在NSBundle中.在当前时刻,即使我们更改它的内容,NSLocalizedString也会返回旧的(缓存)值.

  1. 运行应用程序
  2. 获取特定key1 < - value1的LocalizableString
  3. 更改Localizable.strings key1 = value2
  4. < - 在应用程序中执行某些操作以使本地化缓存无效 - >
  5. 检查LocalizableString是否为特定key1 == value2

我已经尝试过的:

  • [[NSBundble mainBundle] invalidateResourceCache]
  • [UIApplication _performMemoryWarning]
  • 试图看,如果有一些词典.用于缓存,在NSBundle的ivars中.
  • 试图在GNUStep中实现NSBundle,但它与我们在ios 6.0中的不同

我不能做什么(根据定义): - 我不能调和[NSBundle localizableStringForKey:value:table] - 我不能改变宏 - 一般来说,我不能影响任何原始项目代码,只在第4步添加一些东西

这仅用于开发目的.所以,我不需要在AppStore中发布它,所以任何私有方法或解决方案都可以.

所以,问题是.可能有人知道这样做的方法,还是有人给我另一个想法怎么做呢?谢谢.

iphone private localizable.strings ios

5
推荐指数
1
解决办法
1395
查看次数

“Español (México)”语言设置使用“Spanish”字符串而不是“Spanish (Latin America)”字符串

我们的 iOS 项目具有本地化的字符串,用于在 Xcode 中创建的“西班牙语”(es.lproj)和“西班牙语(拉丁美洲)”(es-419.lproj)。

但是,在 iPhone(美国,最新的 iOS 7)上,西班牙语的唯一语言选项是“Español”和“Español (México)”,没有“Latin America”。当您选择“Español (México)”时,它使用我们应用程序中的“Spanish”字符串,而不是人们所期望的“Spanish (Latin America)”字符串。

经进一步调查,[[NSBundle mainBundle] preferredLocalizations]返回@[@"es"]。即使[[NSBundle mainBundle] localizations]返回包含“es”和“es-419”的数组也是如此。

但是,[[NSUserDefaults standardUserDefaults] objectForKey:@"AppleLanguages"]返回一个包含“es-MX”的数组。

然后是以下表达式:

[NSBundle preferredLocalizationsFromArray:@[@"es-419", @"es"]
                           forPreferences:@[@"es-MX"]]
Run Code Online (Sandbox Code Playgroud)

返回@[@"es"]

为什么 Xcode 会给我们“西班牙语(拉丁美洲)”本地化,当您在手机上实际选择唯一的拉丁美洲西班牙语选项时不使用它?

localization localizable.strings ios

5
推荐指数
1
解决办法
2242
查看次数

在loc-args中发送用于iOS推送通知的本地化字符串键

我的应用程序支持4种语言和推送通知.当我向APNS发送推送通知时,我正在发送loc_key&loc-args.现在我需要在loc-args数组中发送本地化字符串,以便在应用程序收到推送通知时我可以在iOS应用程序端翻译它们.

但是当我发送本地化字符串时loc-args,它不是在通知中心显示已翻译的字符串,而是显示本地化的密钥.

我的字符串文件包含以下2条消息:

"WINNER_ALERT"= "Congratulations! %@ won the match & became %@ player";
"ROLE_PROFESSIONAL_LOCALIZED_KEY" = "professional"
Run Code Online (Sandbox Code Playgroud)

服务器发送有效负载

{
    aps =     {
        alert =         {
            "loc-args" =             (
                "John",
                "ROLE_PROFESSIONAL_LOCALIZED_KEY"
            );
            "loc-key" = "WINNER_ALERT";
        };
        badge = 1;
        sound = default;
    };
}
Run Code Online (Sandbox Code Playgroud)

当我发送上述有效负载然后在iOS通知中心,消息看起来像

Congratulations! John won the match & became ROLE_PROFESSIONAL_LOCALIZED_KEY player
Run Code Online (Sandbox Code Playgroud)

代替

Congratulations! JOHN won the match & became professional player
Run Code Online (Sandbox Code Playgroud)

任何人都可以告诉我是否可以发送本地化的字符串loc-args?如果是的话,我的有效载荷有什么问题?

提前致谢

apple-push-notifications localizable.strings nslocalizedstring ios7

5
推荐指数
2
解决办法
6731
查看次数

Xcode 6本地化无法读取字符串文件

Xcode无法生成xliff本地化文件,错误本地化无法读取字符串文件.请查看系统日志以获取更多详细信息.有谁知道我在哪里可以找到这些日志?这是Xcode 6.3.2 GM,但我也尝试过6.3.1版本.用6.3.1.错误是在特定文件上,但在该文件内并不是什么不寻常的.此外,我试图删除该文件,但我收到相同的错误,虽然该文件不再存在.有谁想到为什么?

xcode localization localizable.strings ios

5
推荐指数
2
解决办法
4611
查看次数

如何在 Localized.strings 中添加 Unicode 转义序列?

Localizeable.strings如果字符串被转换为 ,如何将 Unicode 转义序列添加到文件中的字符串中NSString

这是一个(丑陋的)例子:

// Localized string: "\u{200F}Number %@" = "\u{200E}Number %@";

let string = NSMutableAttributedString(string: NSString(format: NSLocalizedString("Number %@", comment: "") as NSString, aNumber as NSNumber)) as String
Run Code Online (Sandbox Code Playgroud)

这个问题我了解到问题是Localizeable.strings和的不兼容转义序列NSString

直接在文件中添加 unicode 字符Localizeable.strings不是一个选项,因为我需要插入不是可打印字符的双向语义标记。在大多数翻译程序中它们也会丢失。

我该如何解决这个问题?

unicode nsstring localizable.strings nslocalizedstring ios

5
推荐指数
0
解决办法
769
查看次数

有没有办法用xcconfig文件本地化应用程序名称?

我遇到了其他线程,无法找到特定于我的情况的解决方案.

我有三个配置文件(DEV,QA,Prod)

在每个xcconfig文件中,我覆盖了$(product_name)ex:PRODUCT_NAME = MyNameDev

这很好用,但现在我需要用两种语言和三种不同的环境本地化应用程序.

用英语讲:

Prod -> MyName
DEV -> MyNameDev
QA -> MyNameQA
Run Code Online (Sandbox Code Playgroud)

用法语:

Prod -> MyFrenchName
DEV -> MyFrenchNamepDev
QA -> MyFrenchNameQA
Run Code Online (Sandbox Code Playgroud)

xcode localization localizable.strings

5
推荐指数
1
解决办法
323
查看次数

iOS - 在 Localizable.strings 中用粗体字符串强调

有没有办法像这样在 Localizable 文件中加粗一些单词?

"Pending network connection" = "<b>Pending</b> network connection";
Run Code Online (Sandbox Code Playgroud)

我在里面有这个字符串,我只想强调某些单词:

 "camSave" = "To complete onboarding:\n1. Tap Save and disconnect to disconnect from the camera.\n2. Connect to the internet.\n3. Log in to Cloud.";
Run Code Online (Sandbox Code Playgroud)

顺便说一句,我想在警报中使用它

localization nsattributedstring localizable.strings ios swift

5
推荐指数
2
解决办法
1711
查看次数

Swift 包清单属性“defaultLocalization”未设置

通过尝试 Swift Packages,我创建了一个新包。现有 Xcode 项目框架目标中的源文件和资源已移至新结构中。

尝试构建时,脚本显示错误:

manifest property 'defaultLocalization' not set; it is required in the presence of localized resources
Run Code Online (Sandbox Code Playgroud)

如何解决这个问题以便我可以创建 Swift 包?

xcode localization localizable.strings swift swift-package-manager

5
推荐指数
1
解决办法
4430
查看次数