Lingo.dev + .properties(Java)

Lingo.dev CLI 翻译 Java .properties 文件,同时保留键值结构、转义序列和 Java 本地化约定。CLI 与 Java 的 ResourceBundle 系统无缝协作,完全保持 properties 文件格式,正确处理 Unicode 和特殊字符转义,保留 {0}{1} 等 MessageFormat 占位符,并与 Maven 和 Gradle 构建流程集成。

快速设置

为 Java properties 文件配置:

{
  "locale": {
    "source": "en",
    "targets": ["es", "fr", "de"]
  },
  "buckets": {
    "properties": {
      "include": ["src/main/resources/messages_[locale].properties"]
    }
  }
}

提醒[locale] 是一个占位符,在 CLI 运行时会被实际的语言区域替换,因此应在配置中保持原样。

翻译 Properties 文件

npx lingo.dev@latest i18n

在翻译值的同时,保留 properties 文件格式、转义序列和 Java 特定约定。

Properties 文件结构

基本键值对

welcome.message=欢迎使用我们的应用程序
login.button=登录
logout.button=登出
error.invalid.credentials=用户名或密码无效

命名空间组织


# 身份验证消息

auth.login.title=登录
auth.login.subtitle=输入您的凭据
auth.register.title=创建账户
auth.forgot.password=忘记密码?

# 导航项

nav.home=主页
nav.dashboard=仪表板
nav.settings=设置

MessageFormat 占位符

welcome.user=欢迎回来,{0}!
items.count=您的购物车中有 {0} 件商品
validation.min.length=字段长度至少为 {0} 个字符
date.format=今天是 {0,date,short}

Java 特定功能

Unicode 转义序列

japanese.greeting=\u3053\u3093\u306b\u3061\u306f
euro.symbol=价格:100\u20ac

Unicode 转义在翻译过程中会被保留。

行续接

long.message=这是一条非常长的消息, \
    跨越多行以便于 \
    在源文件中更好地阅读

特殊字符转义

file.path=C:\\Users\\Documents\\file.txt
key.with.spaces=key\ with\ spaces=value with spaces
special.chars=包含 \= 等号和 \: 冒号

高级配置

多个属性文件

"properties": {
  "include": [
    "src/main/resources/messages_[locale].properties",
    "src/main/resources/validation_[locale].properties"
  ]
}

锁定配置键

"properties": {
  "include": ["src/main/resources/messages_[locale].properties"],
  "lockedKeys": ["app.version", "build.timestamp", "api.endpoint"]
}