수동 재정의

data-lingo-override 속성을 사용하여 특정 텍스트에 대한 AI 생성 번역을 재정의합니다.

기본 사용법

<h1 data-lingo-override={{ es: "Lingo.dev", de: "Lingo.dev" }}>
  Lingo.dev
</h1>

컴파일러는 AI로 번역을 생성하는 대신 지정된 번역을 사용합니다.

구문

data-lingo-override 속성은 로케일 코드를 키로 하는 객체를 받습니다:

data-lingo-override={{
  [locale]: "translation",
  ...
}}

로케일 코드는 구성된 targetLocales와 일치해야 합니다. 이 속성은 최종 HTML 출력에서 제거됩니다.

사용 사례

브랜드명

모든 로케일에서 브랜드명을 보존합니다:

<h1 data-lingo-override={{ es: "Lingo.dev", de: "Lingo.dev", fr: "Lingo.dev" }}>
  Lingo.dev
</h1>

기술 용어

일관된 기술 용어를 보장합니다:

<p data-lingo-override={{ es: "API REST", de: "REST-API", ja: "REST API" }}>
  REST API
</p>

법률 텍스트

법률 콘텐츠에 인증된 번역을 사용합니다:

<p data-lingo-override={{
  es: "Todos los derechos reservados. Consulte nuestros términos legales.",
  de: "Alle Rechte vorbehalten. Siehe unsere rechtlichen Bedingungen."
}}>
  All rights reserved. See our legal terms.
</p>

마케팅 카피

마케팅 메시지를 세밀하게 조정합니다:

<h2 data-lingo-override={{
  es: "Traduce tu app en minutos",
  de: "Übersetze deine App in Minuten",
  fr: "Traduisez votre app en quelques minutes"
}}>
  Translate your app in minutes
</h2>

부분 재정의

특정 로케일만 재정의하고 다른 로케일은 AI 번역을 사용합니다:

<p data-lingo-override={{ de: "Professionelle Übersetzung" }}>
  Professional translation
</p>

스페인어, 프랑스어 및 기타 로케일은 AI 번역을 사용합니다. 독일어만 사용자의 재정의를 사용합니다.

리치 텍스트 및 보간

컴파일러는 중첩된 요소가 있는 리치 텍스트를 처리합니다:

<p data-lingo-override={{
  es: "Bienvenido <strong0>{name}</strong0>",
  de: "Willkommen <strong0>{name}</strong0>"
}}>
  Welcome <strong>{name}</strong>
</p>

플레이스홀더 구문:

  • <tagname0>...</tagname0> 태그의 첫 번째 인스턴스
  • <tagname1>...</tagname1> 두 번째 인스턴스
  • {variableName} 보간

컴파일러는 출력에서 <strong0>를 자동으로 <strong>로 매핑합니다.

다중 중첩 요소

<div data-lingo-override={{
  es: "Tu pedido: <span0>{count}</span0> artículos por <em0>${price}</em0>",
  de: "Deine Bestellung: <span0>{count}</span0> Artikel für <em0>${price}</em0>"
}}>
  Your order: <span>{count}</span> items for <em>${price}</em>
</div>

복잡한 예제

중첩된 컴포넌트

<section>
  <h1 data-lingo-override={{ es: "Características", de: "Funktionen" }}>
    Features
  </h1>
  <p data-lingo-override={{
    es: "Traduce automáticamente tus componentes React sin cambios de código",
    de: "Übersetze deine React-Komponenten automatisch ohne Code-Änderungen"
  }}>
    Automatically translate your React components without code changes
  </p>
</section>

속성

문자열 속성에서도 작동합니다:

<img
  src="/logo.png"
  alt="Company Logo"
  data-lingo-override={{
    es: "Logo de la Empresa",
    de: "Firmenlogo"
  }}
/>

재정의는 alt 속성에 적용됩니다.

로케일 지역 코드

로케일 지역 코드를 지원합니다(예: en-US, en-GB):

<p data-lingo-override={{
  "en-US": "color",
  "en-GB": "colour",
  "es-ES": "color",
  "es-MX": "color"
}}>
  color
</p>

하이픈이 있는 로케일 코드에는 따옴표를 사용하세요.

TypeScript 지원

TypeScript를 사용할 때 속성은 완전히 타입이 지정됩니다:

interface OverrideProps {
  "data-lingo-override"?: Record<string, string>;
}

TypeScript는 로케일 코드가 구성된 targetLocales와 일치하는지 검증합니다.

모범 사례

신중하게 사용—대부분의 번역은 AI가 처리하도록 하세요. 필요한 경우에만 재정의하세요:

  • 번역하지 말아야 할 브랜드 이름
  • 특정 번역이 필요한 기술 용어
  • 인증이 필요한 법률 텍스트
  • 사람의 검토가 필요한 마케팅 카피

일관성 유지—앱 전체에서 동일한 용어에 대해 재정의를 사용합니다:

// Good - consistent brand name
<h1 data-lingo-override={{ es: "Lingo.dev", de: "Lingo.dev" }}>Lingo.dev</h1>
<p>Welcome to <span data-lingo-override={{ es: "Lingo.dev", de: "Lingo.dev" }}>Lingo.dev</span></p>

// Bad - inconsistent
<h1 data-lingo-override={{ es: "Lingo.dev" }}>Lingo.dev</h1>
<p>Welcome to Lingo.dev</p> // Missing override

버전 관리—재정의된 문자열은 소스 코드에 있어 검토 및 버전 관리가 용이합니다.

자주 묻는 질문

클라이언트 컴포넌트에서도 작동하나요? 예. 재정의는 서버 및 클라이언트 컴포넌트 모두에서 작동합니다.

aria-label과 같은 속성을 재정의할 수 있나요? 예. 재정의는 요소 콘텐츠든 속성이든 번역 가능한 텍스트에 적용됩니다.

하나의 로케일만 재정의하면 어떻게 되나요? 다른 로케일은 AI 번역을 사용합니다. 재정의는 로케일별로 적용되므로 모든 로케일을 지정할 필요가 없습니다.

재정의에서 변수를 사용할 수 있나요? 예. 보간에는 {variableName} 구문을 사용합니다. 컴파일러는 변수 플레이스홀더를 보존합니다.

재정의가 번들 크기를 증가시키나요? 약간 증가합니다. 각 재정의는 번들에 몇 바이트를 추가합니다. 합리적인 사용에서는 영향이 미미합니다.

개발 환경에서만 재정의할 수 있나요? 아니요. 재정의는 소스 코드이므로 모든 환경에 적용됩니다. 임시 테스트에는 개발 위젯을 사용하세요.

다음 단계