标签: genstrings

有没有一种简单的方法来合并Localizable.strings文件?

问题:使用genstrings从项目创建Localizable.strings文件.几个星期后,一些事情发生了变化,我再次运行genstrings.75%的新文件已经在旧文件中.如何将新文件与旧文件合并,以便旧文件包含所有这25%的新键值对?

iphone localization internationalization genstrings

15
推荐指数
2
解决办法
5885
查看次数

iPhone:使用genstrings更新Localizable.strings文件?

我使用genstrings正确生成了我的字符串文件.我已经更改了不同语言的本地化字符串.现在,我添加了一些NSLocalizedString()事件,我想在我的所有本地化字符串文件中生成它们.

但是,再次运行genstrings似乎并没有更新我的字符串文件.难道我做错了什么?

iphone localization genstrings

13
推荐指数
1
解决办法
7674
查看次数

在Swift中使用value参数时,genstrings会出现阻塞

我有一个基本的Swift文件Test.swift,其中包含

import Foundation
import UIKit

class Test: NSObject {
    let a: String
    let b: String

    override init() {
        a = NSLocalizedString("key 1", tableName: nil,
            bundle: NSBundle.mainBundle(), value: "value 1", comment: "comment 1")
        b = NSLocalizedString("key 2", comment: "comment 2")
    }
}
Run Code Online (Sandbox Code Playgroud)

当我genstrings在这个文件上运行时,我收到一个意外的警告

$ genstrings -u Test.swift
Bad entry in file Test.swift (line = 9): Argument is not a literal string.
Run Code Online (Sandbox Code Playgroud)

并且生成的Localizable.strings文件缺少条目"key 1"

$ cat Localizable.strings 
??/* comment 2 */
"key 2" = "key …
Run Code Online (Sandbox Code Playgroud)

objective-c genstrings ios swift

12
推荐指数
2
解决办法
3449
查看次数

强制genstrings按照外观顺序而不是按字母顺序构建Localizable.strings文件

我是iOS的国际化和本地化的新手.我正在运行genstrings: find . -name \*.m | xargs genstrings -o en.lproj生成我的Localizable.strings文件.它按字母顺序(按键)构建文件.

为了便于翻译,我希望键和值按照它们在.m文件中的出现顺序排序.这可能与genstrings?我在其man页面上找不到相关信息.

cocoa-touch localization genstrings nslocalizedstring ios

8
推荐指数
2
解决办法
2590
查看次数

iOS - genstrings:无法连接到输出目录en.lproj

我在网上和这里搜索了这个错误.在线它显示我的结果使用不同的语言然后英语很好谷歌.这里有一个帖子和一个从未真正回答过这个问题的家伙.

我的桌面上有我的xcode项目文件夹.在项目文件夹中,我有一个en.lproj文件夹,里面有iPad和iPhone故事板以及localization.plist文件.但是当我在Xcode中启动项目时,无法找到这个en.lproj文件夹.那么这可能是问题所在?

使用我桌面上的项目文件夹,我启动终端输入:cd

然后将我的项目文件夹拖到终端,它给我路径.然后我将这行代码粘贴到终端中

找 .-name*.m | xargs genstrings -o en.lproj

我在终端中收到此错误消息:

genstrings:无法连接到输出目录en.lproj

它多次打印这行,然后说我的项目是一个目录的路径?

没有.strings文件.对我做错了什么的想法?我得到了UILabels,我从Storyboard中拖放,但我也是用编码的字符串

NSLocalizedString(@"First Level Passed",@"这是屏幕上显示的一条消息,允许用户知道他们已经通过了第一级!");

那么上面的终端代码片段应该找到那些NSLocalizedStrings吧?我认为它首先找不到en.lproj文件夹,但我不知道?

任何帮助都会很棒.

terminal localization genstrings ios

7
推荐指数
2
解决办法
3643
查看次数

genstrings可以在自定义#defines上工作吗?

iOS用于创建本地化字符串的宏在使用时非常棒genstrings.但是,我想在其中一个宏之上创建自己的#define,如下所示:

#define MyLocalizedStringWithDefaultValue(key, tbl, val, comment) \
NSLocalizedStringWithDefaultValue(key, tbl, [NSBundle mainBundle], val, comment)
#endif
Run Code Online (Sandbox Code Playgroud)

基本上,我总是想要反对主捆绑,所以我觉得不需要每次都输入它.这在代码中工作得很好,但是genstrings没有拿起我的宏.有什么我可以做的,让它拿起我的自定义宏?我在手册页上看到,有一个常规参数,看起来像我正在尝试做的,但我无法让它工作.

localization genstrings ios

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

genstrings -s 仍然与 NSLocalizedString* 匹配

我认为这是一个genstrings错误或“功能”,但想看看是否有人遇到过这个问题或知道答案。我正计划为此打开一个雷达。

我们使用我们自己的本地化宏。让我们称之为CustomLocalizedString。在我们的代码库中,它非常大,我们使用了很多 3rd Party 库。对于绝大多数 3rd Party 库,如果它们碰巧拥有任何本地化字符串,我们不想要它们。当我们确实想使用他们的本地化字符串时,我们修改 3rd Party lib 以使用我们的CustomLocalizedString宏。由于我们不关心的字符串正在使用NSLocalizedString*宏,因此我们认为这不是问题。

本地化基本上开始标记一些有问题的字符串。经过一番研究,我意识到它来自 3rd Party lib。然后我进一步意识到我们还包括了其他不应该存在的字符串(我们有大量的字符串)。这些是使用NSLocalizedString*marco 的字符串。

所以我们的调用genstrings是这样的:

genstrings -o output -s CustomLocalizedString

我实际上使用xargsfind创建文件参数,因此为简洁起见,我省略了那部分。根据输出,它看起来像是genstringsNSLocalizedStringCustomLocalizedString字符串都放入 Localizable.strings 文件中。

为了进一步验证我创建了一个文件:

NSLocalizedString(@"Normal localized string macro", nil);
CustomLocalizedString(@"Custom localized string macro", nil);
Run Code Online (Sandbox Code Playgroud)

并跑了:

genstrings -o out -s CustomLocalizedString localized_string.txt
Run Code Online (Sandbox Code Playgroud)

输出是:

/* No comment provided by engineer. */
"Custom localized string macro" = "Custom …
Run Code Online (Sandbox Code Playgroud)

xcode localization genstrings

6
推荐指数
0
解决办法
624
查看次数

Swift Localization:Genstrings

我正在尝试准备我的应用程序以传递给翻译人员进行本地化,但我遇到了一些问题.我将文件"Localizable.strings"添加到我的项目中,并选中了"Use Base Internationalization".

然而,看看我在Xcode中的应用程序,我没有看到任何语言的"Base.lproj"或"en.lproj"或.lproj文件,但是当我在Finder中打开我的应用程序时,我可以看到"en.lproj" "和"es.lproj"文件夹.

我猜这可能是genstrings实用程序对我不能正常工作的原因.我的代码中有很多调用self.navigationItem.title = NSLocalizedString(...),但是当我执行时genstrings *.swift,Localizable.strings没有任何变化,我仍然看不到任何.lproj文件夹.

xcode localization genstrings ios swift

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

Localizable.strings 的字符编码,由 genstrings 生成

在我的“ViewController.swift”中,我有一个本地化的字符串:

TheOutLabel.text = NSLocalizedString("hello", comment: "The \"hello\" word")
Run Code Online (Sandbox Code Playgroud)

在终端中,为了生成“Localizable.strings”文件,我输入:

cd Base.lproj/; genstrings ../*.swift; cat Localizable.strings
Run Code Online (Sandbox Code Playgroud)

并得到以下结果:

??/* The \"hello\" word */
"hello" = "hello";
Run Code Online (Sandbox Code Playgroud)

打字时od -c Localizable.strings,我得到:

0000000  377 376   /  \0   *  \0      \0   T  \0   h  \0   e  \0      \0
0000020    \  \0   "  \0   h  \0   e  \0   l  \0   l  \0   o  \0   \  \0
0000040    "  \0      \0   w  \0   o  \0   r  \0   d  \0      \0   *  \0
0000060    /  \0  \n …
Run Code Online (Sandbox Code Playgroud)

unicode character-encoding genstrings ios swift

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

为什么genstrings不将NSLocalizedStringFromTable条目转换为table.strings?

在我的源代码中,我有一些像NSLocalizedStringFromTable(@"Info", @"en", @"Title of this view").当我随后调用时,genstrings -o en.lproj ./Classes/*.m我不会得到预期的文件,en.strings但是Localized.strings,尽管我在genstrings-manpage中读到它会从NSLocalizedStringFromTable(a,table,c)函数生成一个table.strings文件.我错了吗?我如何创建table.strings文件呢?

iphone xcode genstrings

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