为iOS项目中的每个目标选择不同的语言

时间:2013-01-22 11:14:01

标签: ios xcode localization project

我有一个iOS项目(当前的XCode),它支持5种语言并且其中包含很少的目标。我希望能够为每个目标选择某种语言(不需要手动删除它们)。有没有办法做到这一点?

3 个答案:

答案 0 :(得分:1)

我最终创建了两个脚本。同时我将我的US文件中的更改添加到默认en lproj(我的US和GB略有不同)。

用于删除不必要的语言

#!/bin/bash
if [ -e ProjectName.xcodeproj/project.pbxproj.backup ]; then
    echo "Last changes were not yet reverted."
else
    # move files from en-US to en
    cp -f en-US.lproj /* en.lproj */

    # remove from project file all occurences of unwanted languages
    cp ProjectName.xcodeproj/project.pbxproj ProjectName.xcodeproj/project.pbxproj.backup
    grep -v "en-GB.lproj" ProjectName.xcodeproj/project.pbxproj > ProjectName.xcodeproj/project.pbxproj2; mv ProjectName.xcodeproj/project.pbxproj2 ProjectName.xcodeproj/project.pbxproj
    grep -v "fr.lproj" ProjectName.xcodeproj/project.pbxproj > ProjectName.xcodeproj/project.pbxproj2; mv ProjectName.xcodeproj/project.pbxproj2 ProjectName.xcodeproj/project.pbxproj
    grep -v "it.lproj" ProjectName.xcodeproj/project.pbxproj > ProjectName.xcodeproj/project.pbxproj2; mv ProjectName.xcodeproj/project.pbxproj2 ProjectName.xcodeproj/project.pbxproj
    grep -v "sv.lproj" ProjectName.xcodeproj/project.pbxproj > ProjectName.xcodeproj/project.pbxproj2; mv ProjectName.xcodeproj/project.pbxproj2 ProjectName.xcodeproj/project.pbxproj

第二个用于取回所有语言包

#!/bin/bash

if [ -e ProjectName.xcodeproj/project.pbxproj.backup ]; then
    mv ProjectName.xcodeproj/project.pbxproj.backup ProjectName.xcodeproj/project.pbxproj
fi

答案 1 :(得分:0)

我做的是:

1 - 创建两个语言字符串文件

enter image description here

2 - 对于每个字符串文件,选择要使用该文件的目标以及该目标可用的语言

enter image description here

enter image description here

答案 2 :(得分:-1)

1)最好的方法是在一个目标中添加支持任何本地化。您可以选择任何文件,然后选择“制作本地化...”以添加文件夹:

en.lproj
de.lproj

2)如果你不想做第一步,那么你可以只使用一个文件,你的本地化文本在哪里。并在每个目标添加每个目标。例如:

仅在 MyProject_en 目标中添加了

Texts_en.txt 仅在 MyProject_de 目标中添加 Texts_de.txt

<强> UPD:

或者您可以为每个目标添加预处理器宏

LANG_ENG
LANG_GER

在您的代码中,您必须使用这些