|
문서
데모 예약플랫폼
플랫폼MCPCLIAPI워크플로
가이드
변경 로그

로컬라이제이션

  • 개요
  • 번역 API
  • 웹 앱 로컬라이제이션
  • 모바일 앱 로컬라이제이션
  • String Catalogs로 iOS 로컬라이제이션
  • strings.xml로 Android 로컬라이제이션
  • 이메일 로컬라이제이션
  • 정적 콘텐츠(예: .md, .json)
  • Markdoc으로 Next.js 사용하기
  • Rails + i18n

워크플로

  • MCP로 엔진 설정하기
  • Jira 트리아지
  • CI/CD

정적 콘텐츠 로컬라이제이션

Lingo.dev CLI는 리포지토리의 정적 파일(Markdown, MDX, Markdoc, JSON, YAML, 자막 등)을 구성된 로컬라이제이션 엔진을 통해 번역합니다. 콘텐츠 경로만 지정해 한 번 실행하면, 원본 파일과 나란히 번역된 파일이 생성됩니다.

지원 콘텐츠 유형#

콘텐츠 유형형식CLI 버킷예시 경로
문서Markdownmarkdowndocs/[locale]/getting-started.md
문서MDXmdxdocs/[locale]/getting-started.mdx
문서Markdocmarkdocdocs/[locale]/getting-started.mdoc
구조화된 데이터JSONjsondata/[locale].json
구조화된 데이터YAMLyamldata/[locale].yaml
블로그 포스트Markdown / MDXmarkdown / mdxblog/[locale]/post-slug.md
자막SRTsrtsubs/[locale]/intro.srt
자막VTTvttsubs/[locale]/intro.vtt
스프레드시트CSVcsv-per-localedata/[locale].csv
설정 문자열Propertiespropertieslang/[locale].properties
설정 문자열Gettext POpolocale/[locale]/messages.po
일반 텍스트TXTtxtcontent/[locale]/readme.txt

사전 준비#

CLI를 실행할 때마다 콘텐츠는 로컬라이제이션 엔진을 거쳐 처리됩니다. 이 구성에는 어떤 LLM 모델, 용어집, 브랜드 보이스, 지침을 적용할지가 담깁니다. Lingo.dev 대시보드에서 엔진을 만들고 API 키를 생성하세요.

문서 사이트#

대부분의 문서 프레임워크는 번역된 콘텐츠를 로캘별 디렉터리로 구성합니다. CLI의 markdown, mdx, markdoc 버킷은 frontmatter, 코드 블록, 컴포넌트 문법을 그대로 유지하면서 이러한 파일을 번역합니다.

json
{
  "$schema": "https://lingo.dev/schema/i18n.json",
  "version": "1.15",
  "locale": {
    "source": "en",
    "targets": ["es", "fr", "de", "ja"]
  },
  "buckets": {
    "markdown": {
      "include": ["docs/[locale]/getting-started.md"]
    },
    "mdx": {
      "include": ["docs/[locale]/setup.mdx"]
    }
  }
}

사용 중인 프레임워크의 디렉터리 규칙에 맞게 include 패턴을 조정하세요:

프레임워크로캘 디렉터리 규칙참고 자료
Docusaurusi18n/[locale]/docusaurus-plugin-content-docs/current/Docusaurus i18n 가이드
Nextra로캘별 페이지 또는 JSON 딕셔너리Nextra 문서
Hugocontent/[locale]/Hugo 다국어 가이드
Astrosrc/content/[locale]/ 또는 JSON 딕셔너리Astro i18n 가이드
VitePress[locale]/ 디렉터리 접두사VitePress i18n
MkDocsi18n 플러그인과 함께 사용하는 로캘별 docs/MkDocs i18n 플러그인

MDX 컴포넌트

mdx 버킷은 번역 중에도 JSX 컴포넌트 문법을 그대로 보존합니다. <Callout>, <Tabs>, <CodeBlock> 같은 커스텀 컴포넌트는 변경 없이 통과하고, 내부의 텍스트 콘텐츠만 번역됩니다.

구조화된 데이터#

JSON 및 YAML 파일은 json 및 yaml 버킷으로 번역할 수 있습니다. 번역 대상이 아닌 값(ID, URL, 설정 플래그)이 수정되지 않도록 locked keys를 사용하세요.

json
{
  "$schema": "https://lingo.dev/schema/i18n.json",
  "version": "1.15",
  "locale": {
    "source": "en",
    "targets": ["es", "fr", "de", "ja"]
  },
  "buckets": {
    "json": {
      "include": ["content/[locale].json"],
      "lockedKeys": ["id", "slug", "url"]
    },
    "yaml": {
      "include": ["data/[locale].yaml"]
    }
  }
}

로캘 코드를 루트 키로 사용하는 YAML 파일(Rails와 Hugo에서 흔한 방식)에는 대신 yaml-root-key 버킷을 사용하세요. 이 버킷은 소스 로캘 키에서 값을 읽고, 같은 파일 안의 대상 로캘 키에 기록합니다.

자막#

SRT 및 VTT 자막 파일은 srt 및 vtt 버킷으로 번역할 수 있습니다. CLI는 모든 타이밍 데이터, 큐 인덱스, 서식 태그를 그대로 유지하고 텍스트 콘텐츠만 번역합니다.

json
{
  "$schema": "https://lingo.dev/schema/i18n.json",
  "version": "1.15",
  "locale": {
    "source": "en",
    "targets": ["es", "fr", "de", "ja"]
  },
  "buckets": {
    "srt": {
      "include": ["subs/[locale]/intro.srt"]
    }
  }
}

대규모 콘텐츠 다루기#

정적 콘텐츠 리포지토리에는 수천 개의 파일이 들어 있을 수 있습니다. CLI는 다음 세 가지 메커니즘으로 이를 효율적으로 처리합니다.

메커니즘도움이 되는 방식
Lockfile소스 콘텐츠의 SHA-256 지문을 추적합니다. 이후 실행에서는 새 파일이나 변경된 파일에만 번역이 수행됩니다.
병렬 처리번역 작업을 여러 동시 워커에 분산합니다. run --concurrency 20로 설정할 수 있습니다.
대상 지정 실행특정 버킷 또는 로캘만 처리할 수 있습니다: run --bucket markdown 또는 run --target-locale es.

다음 단계#

지원 형식
CLI가 번역할 수 있는 25개 이상의 모든 파일 형식에 대한 전체 레퍼런스
키 잠금
특정 값이 번역되지 않도록 방지하는 방법
CI/CD 워크플로
푸시할 때마다 정적 콘텐츠 번역을 자동화하세요
Lockfile
증분 번역 추적이 작동하는 방식

이 페이지가 도움이 되었나요?

Max PrilutskiyMax Prilutskiy·업데이트됨 4개월 전·3 min read