跳转到主要内容
hyperlocalise 从以下位置读取提供程序凭据:
  • 在当前的 shell 会话中导出变量。
  • .env.env.local 文件位于你当前的项目目录中。
优先级:
  • 已导出的 shell 变量保持原样。
  • 对于尚未导出的变量,.env.local 会覆盖 .env
示例:
export OPENAI_API_KEY="your-openai-api-key"
export AZURE_OPENAI_BASE_URL="https://<resource>.openai.azure.com/openai/v1"
export AZURE_OPENAI_API_KEY="your-azure-openai-api-key"

LLM 提供商

OpenAI

export OPENAI_API_KEY="your-openai-api-key"

Azure OpenAI

# Example: https://<resource>.openai.azure.com/openai/v1
export AZURE_OPENAI_BASE_URL="https://<resource>.openai.azure.com/openai/v1"
export AZURE_OPENAI_API_KEY="your-azure-openai-api-key"

双子座

export GEMINI_BASE_URL="https://generativelanguage.googleapis.com/v1beta/openai"
export GEMINI_API_KEY="your-gemini-api-key"

Anthropic

export ANTHROPIC_BASE_URL="https://api.anthropic.com/v1"
export ANTHROPIC_API_KEY="your-anthropic-api-key"

AWS Bedrock

export AWS_REGION="us-east-1"
export AWS_ACCESS_KEY_ID="your-access-key-id"
export AWS_SECRET_ACCESS_KEY="your-secret-access-key"
# Optional when using temporary credentials:
export AWS_SESSION_TOKEN="your-session-token"

LM Studio

export LM_STUDIO_BASE_URL="http://127.0.0.1:1234/v1"
export LM_STUDIO_API_KEY="lm-studio"

Ollama

export OLLAMA_BASE_URL="http://127.0.0.1:11434/v1"
export OLLAMA_API_KEY="ollama"

Groq

export GROQ_BASE_URL="https://api.groq.com/openai/v1"
export GROQ_API_KEY="your-groq-api-key"

存储适配器

POEditor

export POEDITOR_API_TOKEN="your-poeditor-token"

LILT AI

export LILT_API_TOKEN="your-lilt-token"

Lokalise

export LOKALISE_API_TOKEN="your-lokalise-token"

Crowdin

export CROWDIN_API_TOKEN="your-crowdin-token"
如果你使用 Crowdin Enterprise,还请将 storage.config.apiBaseURL 中的 i18n.yml 设置为你的 Enterprise API 主机。例如:https://example.api.crowdin.com

Smartling

export SMARTLING_USER_SECRET="your-smartling-user-secret"
Smartling 还需要 storage.config.userIdentifieri18n.yml 中。

安全指南

  • 优先使用环境变量,而不是硬编码的令牌。
  • 请将 .env.env.local 排除在版本控制之外。
  • 定期轮换令牌,并将其权限范围限制为最小权限。

本地和 CI 的凭据管理标准

对所有远程存储适配器使用此操作模型,包括 Smartling、Lokalise 和内部自定义适配器。

本地开发

  1. 仅将非机密配置(*Env 变量名)提交到 i18n.yml
  2. 仅在开发者机器上将真实 token 存储在 .env.local 中。
  3. .env.env.local 添加到 .gitignore
  4. 使用单独的开发和生产 TMS 凭据。

CI 环境

  1. 将密钥存储在你的 CI 密钥管理器中(例如,GitHub Actions Secrets)。
  2. 仅将密钥注入需要它们的同步作业。
  3. 将 CI 密钥映射为适配器配置所期望的环境变量。
  4. 对生产同步使用环境范围的密钥和分支保护。

轮换和最小权限

  • 按固定计划(例如每 90 天)以及在团队成员离职时轮换令牌。
  • 为每个 TMS 工作区或项目创建专用的 CI 服务用户。
  • 将每个令牌限制为拉取/推送所需的最小 API 范围。
  • 在删除之前的凭据之前,先运行一次试运行同步以验证轮换。

适合审计的日志策略

  • 切勿将原始密钥打印到日志、调试输出、截图或问题评论中。
  • 仅记录凭据来源名称(SMARTLING_USER_SECRETLOKALISE_API_TOKEN),不要记录值。
  • 将 CLI 输出保持为机器可读格式(--output json--output csv),以便用于审计日志。
  • 根据您的保留策略存储 CI 日志并同步制品。

TMS 适配器安全检查清单

在启用可写入的 CI 作业之前,请使用此清单。
  • 所有适配器密钥均通过环境变量提供,而不是在配置中内联。
  • CI 使用专用服务凭据(不使用个人访问令牌)。
  • 凭证范围仅限于所需的项目和操作。
  • 轮换计划已记录,并由一个团队负责。
  • 管道日志不会泄露令牌值。
  • 已成功运行计划的试运行 sync pullsync push 任务。
  • 如有需要,在生产写入同步之前需要手动审批。
同样的检查清单也适用于 Smartling、Lokalise 以及基于存储适配器接口构建的自定义适配器。