BartyCrouch - 基本语言检测
BartyCrouch - Base language detection
我有一个 Xcode ObjC 项目,在 project.pbxproj
中具有以下与语言相关的属性
developmentRegion = English;
knownRegions = ( en, Base, sk, cs, );
此外 Info.plist 已将 <key>CFBundleDevelopmentRegion</key>
设置为 <string>en</string>
。
所有设计器文件(故事板、视图等)均采用英文设计。
每当我 运行 bartycrouch interfaces -p "."
在项目根文件夹中时,我都会更新所有 *.strings 文件,但是设计器文件中的所有字符串都会写入 cs.lproj 文件夹(应该是捷克语)而不是 en.proj 文件夹。
我的项目有问题吗?或者有没有办法(参数?)为 bartycrouch 指定我的基本语言?
我在项目 GitHub (https://github.com/Flinesoft/BartyCrouch/issues/91) 上开了一个问题,但是两周都没有反应,所以我希望我能在这里找到更多的活跃用户。
我已经在相关 GitHub 问题上回答了这个问题,但为了完整起见,让我在这里解释一下:
问题解释
以下是当 BartyCrouch 在您的项目中运行时 cs.lproj
中发生的变化的摘录:
我们也来看看语言 sk.lproj
中的相同条目:
乍一看,有人可能会想,为什么 BartyCrouch 要把正确的捷克语翻译换成英语?为什么不使用斯洛伐克语?
事情是这样的:如果您看一下评论,您会发现两种语言的评论是一样的。事实上,在 Xcode 中第一次创建 Strings 文件时,Xcode 会自动从 XIB 或 Storyboard 中获取值并将它们放入注释中。它也永远不会更改注释值,即使您在 XIB 或 Storyboard 文件中进行了更改,也不会为每个条目留下三个不同的值:实际值、注释值和 XIB/Storyboard 值。刚开始后两者是相同的,但由于Xcode不更新它们,所以随着时间的推移它们往往会有所不同。
因为我们可以看到评论中的值是捷克语,我可以假设在您第一次让 Xcode 生成字符串文件时,您的 XIB 或 Storyboard 具有捷克语的值.看来你后来改变了这一点,并使 XIB 或 Storyboard 中的每个值都是英语。 BartyCrouch 有一个内置功能,可以自动为您更新评论值。这就是为什么我们看到上面两种示例语言的注释行发生了变化。 BartyCrouch 的一个附加功能是——如果评论值与真实值完全匹配——也更新真实值。由于捷克语翻译的实际值与评论值相同,这就是这里发生的事情,也是使 BartyCrouch 也更新该值并将其替换为在 XIB 或 Storyboard 文件中找到的新英语值的原因。
解决方案
既然我们知道问题是什么,让我们看看可以做些什么来解决这个问题and/or以防止它在未来发生:
- 要防止此问题再次发生,请从一开始就在 XIB 或 Storyboard 文件中使用英语(或任何语言)并且永远不要更改语言。
- 当语言发生变化时,一种手动修复方法是手动将注释值更新为新语言。例如:
/* Class = "UILabel"; text = "Proveďte synchronizaci."; ObjectID = "RvR-Nz-aYE"; */
需要手动更改为
/* Class = "UILabel"; text = "Sync to get data."; ObjectID = "RvR-Nz-aYE"; */
- 或者,您也可以让 BartyCrouch 完成它的工作,并手动恢复一次错误的更改(尽管保留注释更改!)。从那时起(只要您不再更改语言)问题就不会再发生了。这是我建议您解决此问题的方法 – 在 Git GUI 工具(如 SourceTree)的帮助下,这不会花很长时间。
希望能帮到你。
我有一个 Xcode ObjC 项目,在 project.pbxproj
中具有以下与语言相关的属性developmentRegion = English;
knownRegions = ( en, Base, sk, cs, );
此外 Info.plist 已将 <key>CFBundleDevelopmentRegion</key>
设置为 <string>en</string>
。
所有设计器文件(故事板、视图等)均采用英文设计。
每当我 运行 bartycrouch interfaces -p "."
在项目根文件夹中时,我都会更新所有 *.strings 文件,但是设计器文件中的所有字符串都会写入 cs.lproj 文件夹(应该是捷克语)而不是 en.proj 文件夹。
我的项目有问题吗?或者有没有办法(参数?)为 bartycrouch 指定我的基本语言?
我在项目 GitHub (https://github.com/Flinesoft/BartyCrouch/issues/91) 上开了一个问题,但是两周都没有反应,所以我希望我能在这里找到更多的活跃用户。
我已经在相关 GitHub 问题上回答了这个问题,但为了完整起见,让我在这里解释一下:
问题解释
以下是当 BartyCrouch 在您的项目中运行时 cs.lproj
中发生的变化的摘录:
我们也来看看语言 sk.lproj
中的相同条目:
乍一看,有人可能会想,为什么 BartyCrouch 要把正确的捷克语翻译换成英语?为什么不使用斯洛伐克语?
事情是这样的:如果您看一下评论,您会发现两种语言的评论是一样的。事实上,在 Xcode 中第一次创建 Strings 文件时,Xcode 会自动从 XIB 或 Storyboard 中获取值并将它们放入注释中。它也永远不会更改注释值,即使您在 XIB 或 Storyboard 文件中进行了更改,也不会为每个条目留下三个不同的值:实际值、注释值和 XIB/Storyboard 值。刚开始后两者是相同的,但由于Xcode不更新它们,所以随着时间的推移它们往往会有所不同。
因为我们可以看到评论中的值是捷克语,我可以假设在您第一次让 Xcode 生成字符串文件时,您的 XIB 或 Storyboard 具有捷克语的值.看来你后来改变了这一点,并使 XIB 或 Storyboard 中的每个值都是英语。 BartyCrouch 有一个内置功能,可以自动为您更新评论值。这就是为什么我们看到上面两种示例语言的注释行发生了变化。 BartyCrouch 的一个附加功能是——如果评论值与真实值完全匹配——也更新真实值。由于捷克语翻译的实际值与评论值相同,这就是这里发生的事情,也是使 BartyCrouch 也更新该值并将其替换为在 XIB 或 Storyboard 文件中找到的新英语值的原因。
解决方案
既然我们知道问题是什么,让我们看看可以做些什么来解决这个问题and/or以防止它在未来发生:
- 要防止此问题再次发生,请从一开始就在 XIB 或 Storyboard 文件中使用英语(或任何语言)并且永远不要更改语言。
- 当语言发生变化时,一种手动修复方法是手动将注释值更新为新语言。例如:
/* Class = "UILabel"; text = "Proveďte synchronizaci."; ObjectID = "RvR-Nz-aYE"; */
需要手动更改为
/* Class = "UILabel"; text = "Sync to get data."; ObjectID = "RvR-Nz-aYE"; */
- 或者,您也可以让 BartyCrouch 完成它的工作,并手动恢复一次错误的更改(尽管保留注释更改!)。从那时起(只要您不再更改语言)问题就不会再发生了。这是我建议您解决此问题的方法 – 在 Git GUI 工具(如 SourceTree)的帮助下,这不会花很长时间。
希望能帮到你。