在本地化应用程序中,动态加载翻译文件是一个常见的需求。以下是一个解决方案的代码示例:
首先,创建一个翻译文件目录,将每种语言的翻译文件存放在不同的文件中。
在应用程序中创建一个函数,用于根据用户选择的语言加载相应的翻译文件。该函数可以是以下形式:
import json
def load_translation_file(language):
file_name = f"translations/{language}.json"
try:
with open(file_name, "r", encoding="utf-8") as file:
translation_data = json.load(file)
return translation_data
except FileNotFoundError:
print(f"Translation file for language '{language}' not found.")
return None
上述函数会根据用户选择的语言构建相应的翻译文件路径,并使用json
模块加载翻译文件中的内容。如果文件不存在,则会打印错误信息并返回None
。
以下是一个简单的示例:
current_language = "en" # 默认语言
def translate(key):
global current_language
translation_data = load_translation_file(current_language)
if translation_data:
return translation_data.get(key, key) # 如果找不到对应的翻译,返回原始字符串
else:
return key
# 用法示例
print(translate("hello")) # 输出:Hello
在上述示例中,translate
函数会根据当前语言加载相应的翻译数据,并根据传入的key
在翻译数据中查找对应的翻译。如果找不到对应的翻译,则返回原始字符串。