如何通过Fastlane脚本添加Xcode本地化语言

吉米·詹姆斯(JimmyJammed)

我有一个具有多个应用程序目标的项目,并且需要能够将现有的英语本地化字符串文件添加到其中一个目标中,仅供开发使用。

这是我的情况:

  1. 目标A使用英语+多个非英语本地化的字符串文件。
  2. 目标B仅使用1个非英语本地化的字符串文件。
  3. 目标B的App Store版本中不能包含英文字符串。

但是,为了在开发过程中提供帮助,我们目前将英语字符串手动添加到目标B的本地化文件中(在出现提示时使用目标A中的现有文件),并在提交App Store之前将其删除。

由于我们已经运行过Fastlane设置/拆卸脚本,因此我想自动从脚本中添加/删除英文字符串,因此我们不必每次都手动进行操作。

在Fastfile中,我知道如何将文件添加到目标B,但是由于本地化文件/引用在Xcode中的结构与常规文件略有不同,因此我不确定执行此操作的正确方法是什么。

这是我到目前为止的内容:

def add_english_localization()
    require 'xcodeproj'

    project = Xcodeproj::Project.open("../Code/#{XCODE_PROJ}")

    app_target = project.targets.first #Target B
    english_file_ref = project.main_group.new_file('../Code/TargetA/Application/Supporting Files/en.lproj') #Existing english file in Target A's directory
    app_target.add_file_references([english_file_ref]) #This adds the file but doesn't properly update Xcode's Localization references...?

    project.save
  end

屏幕截图:

在此处输入图片说明
在此处输入图片说明


在此处输入图片说明
在此处输入图片说明

杜乐

这是一个红宝石脚本,使用xcodeproj删除和添加本地化:

删除语言(在此示例中为法语):

require 'xcodeproj'
project_path = './Whatever.xcodeproj'
project = Xcodeproj::Project.open(project_path)

for o in project.objects do 
    if o.is_a? Xcodeproj::Project::Object::PBXGroup
        if o.hierarchy_path == "/TargetA/Localizable.strings"
            group = o
            break
        end
    end
end


files = group.files
for file in files do

    if file.path == "fr.lproj/Localizable.strings"
        file.remove_from_project
        puts "Removed " + file.path
    end
end

project.save

要添加语言(也法语):

require 'xcodeproj'
project_path = './Whatever.xcodeproj'
project = Xcodeproj::Project.open(project_path)

for o in project.objects do 
    if o.is_a? Xcodeproj::Project::Object::PBXGroup
        if o.hierarchy_path == "/TargetA/Localizable.strings"
            group = o
            break
        end
    end
end

file = project.new_file("fr.lproj/Localizable.strings")
file.move(group)
file.name = "fr"

project.save

您应该可以在fastfile中调用它,但是我没有检查...可以直接使用 sh("ruby ./name.rb")

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章