独立开发之 App 国际化全步骤(二)

关于我:大厂摸鱼 + 业余独立开发,之后会输出深度技术文章 + 独立开发技巧

我的往期技术文章合集:RickeyBoy - Gitbub

我的独立开发 App:iColors - 设计灵感 配色助手

上一篇:独立开发之 App 国际化全步骤(一)

🫙 数据库内容翻译

首先我们需要对我们的数据进行翻译。因为我的 App 「iColors」内部有非常多内容数据,通过 CoreData 进行管理,这些数据都需要进行翻译,这一部分的工作量实际上是非常大,以及非常复杂的。

难点分析

首先比如像 App 主打的中国传统色,其实每一种颜色都需要翻译对应的英文名,而且为了保持调性,需要非常高质量的翻译,尽量让英文名也能尽量保持优雅、简洁。

我截图两个页面举例,可以看到其实中国传统色本身的名字就很有诗意,也有些偏僻;最终翻译出来的结果也要能做到同样的效果。

中文版 英文版

另外,「iColors」数据库整体非常的庞大,除了大量中国传统色之外,还有大量的色组配色,全部都需要高质量的翻译。

中文版 英文版

所以这一个章节我将专门讲一讲我如何把这些内容翻译好。

需要再额外说明的是,如果你的 App 不涉及到特别多本土化的内容,那么其实可以跳过这一步。毕竟这一步的复杂过程,有因为我的独立 App 的特殊之处。

第一步:提取待翻译的文案

首先需要从数据库中,将所有涉及到文案全部整理出来。这一步相对简单,主要是为了方便后续的翻译。

比如我的原始数据是以 Json 的方式存在,通过 Python 脚本就可以将其中需要翻译的名字提取出来,整理成表格形式。

当然,如果你不会写的话,也可以让 ChatGPT 帮你写一个 Python 脚本。需要描述清楚你的原始数据类型,以及你的目标形式,很快就可以有一个非常完美的脚本了。

这一步相对简单,我就不过多废话了。

第二步:翻译文案

整理好了需要翻译的内容之后,接下来就是喂给 ChatGPT,然他帮忙翻译了。如果你是尊贵的 GPT-4 用户,那么可以直接将整个文件直接上传,要不然就分批操作也是没问题的。

在 prompt 阶段,可以说明一些要求,比如要求翻译名 "elegant"、"simple"、"poetic" 等。

虽说翻译完成之后仍旧需要人工对这些翻译进行一个检查,不过有了 AI 的帮助,这个过程也还是轻松很多了。

第三步:将 CoreData 数据对应的文案塞入

核心就是将翻译后的英文,拼接到对应的数据之中,这一步也通过 Python 脚本实现。核心代码如下

python 复制代码
import pandas as pd
import json
​
# 读取翻译文件
file_path = 'xxx.xlsx'
xls = pd.ExcelFile(file_path)
​
data_dict = {}
for sheet_name in xls.sheet_names:
    df = pd.read_excel(xls, sheet_name, header=None)
    # 遍历所有行,并且把其中英文到字典中
    for index, row in df.iterrows():
        key = row[0]  # Value from column 1
        value = row[1]  # Value from column 2
        data_dict[key] = value     
xls.close()
​
# 按照 Json 格式输出
output_file = 'xxx.json'
with open(output_file, 'w', encoding='utf-8') as f:
    json.dump(data_dict, f, ensure_ascii=False, indent=4)

用一张图来说明前三步做的事情:

这里只是以中国传统色来进行说明(实际上除了传统色还有大量色彩组合需要处理),翻译后在原有的数据结构上增加了对应的英文翻译内容。这样就可以进行下一步了,对 CoreData 底层进行升级,从而在 App 内读取到对应的中英文名称。


国际化系列文章的第二篇,主要是简单描述一下对于 App 数据库中的内容,借助 ChatGPT 进行翻译的一个过程。有了翻译后的数据,接下来就需要升级 CoreData 架构,从而在 App 中使用中英文数据了。这些内容会更新在下一篇!

相关推荐
Digitally5 小时前
重置iPhone会删除所有内容吗? 详细回答
ios·iphone
普罗米拉稀7 小时前
Flutter 复用艺术:Mixin 与 Abstract 的架构哲学与线性化解密
flutter·ios·面试
kymjs张涛14 小时前
零一开源|前沿技术周刊 #12
ios·google·github
2501_915918411 天前
iOS 应用上架全流程实践,从开发内测到正式发布的多工具组合方案
android·ios·小程序·https·uni-app·iphone·webview
笔沫拾光1 天前
iOS 正式包签名指南
flutter·ios·ios签名
大熊猫侯佩2 天前
「内力探查术」:用 Instruments 勘破 SwiftUI 卡顿迷局
swiftui·debug·xcode
Magnetic_h2 天前
【iOS】锁的原理
笔记·学习·macos·ios·objective-c·cocoa·xcode
HarderCoder2 天前
深入理解 SwiftUI 的 ViewBuilder:从隐式语法到自定义容器
swiftui·swift
东坡肘子2 天前
我差点失去了巴顿(我的狗狗) | 肘子的 Swift 周报 #098
swiftui·swift·apple
Digitally2 天前
将 iPhone 联系人转移到 Infinix 的完整指南
ios·cocoa·iphone