다국어 지원

다국어 지원 (Multilingual support)

Claude는 여러 언어에 걸친 작업에서 뛰어난 성능을 보여줘요. 특히 다양한 언어의 제로샷 작업에서 강한 성능을 보여요. 이 페이지는 언어별 성능 데이터와 응답 언어 설정 방법, 그리고 다국어 콘텐츠를 다룰 때의 모범 사례를 다뤄요.

출처: 문서

본문

개요 (Overview)

Claude는 강력한 다국어 능력을 보여주며, 특히 여러 언어에 걸친 제로샷 작업에서 뛰어난 성능을 보여요. 이 모델은 널리 쓰이는 언어와 저리소스 언어 모두에서 일관된 상대 성능을 유지해서, 다국어 애플리케이션에 신뢰할 만한 선택이 돼요.

Claude는 아래 표에서 벤치마크된 언어 외에도 많은 언어에서 능숙해요. 특정 사용 사례와 관련된 모든 언어로 테스트해 보세요.

성능 데이터

다음 표는 여러 언어에 걸친 Claude 모델의 제로샷 chain-of-thought 평가 점수를 보여줘요. 영어 성능(100%)에 대한 백분율로 표현돼요:

Language Claude Sonnet 4.5¹ Claude Haiku 4.5¹
English (baseline, fixed to 100%) 100% 100%
Spanish 98.2% 96.4%
Portuguese (Brazil) 97.8% 96.1%
Italian 97.9% 96.0%
French 97.5% 95.7%
Indonesian 97.3% 94.2%
German 97.0% 94.3%
Arabic 97.2% 92.5%
Chinese (Simplified) 96.9% 94.2%
Korean 96.7% 93.3%
Japanese 96.8% 93.5%
Hindi 96.7% 92.4%
Bengali 95.4% 90.4%
Swahili 91.1% 78.3%
Yoruba 79.7% 52.7%

¹ 확장 thinking 사용.

참고: 이 지표는 전문 인간 번역가가 14개 추가 언어로 번역한 MMLU(Massive Multitask Language Understanding) 영어 테스트 세트를 기반으로 해요. 이는 OpenAI의 simple-evals 저장소에 문서화되어 있어요. 이 평가에 인간 번역가를 사용하면 높은 품질의 번역이 보장되는데, 특히 디지털 리소스가 부족한 언어에서 중요해요.


응답 언어 설정하기

Claude는 대화에서 응답 언어를 추론해요. 하지만 프로덕션 애플리케이션에서는 대상 언어를 명시적으로 밝히는 것이 좋아요. 가장 신뢰할 수 있는 위치는 시스템 프롬프트예요. 이렇게 하면 대화의 모든 턴에서 지침이 안정적으로 유지돼요.

```bash cURL curl https://api.anthropic.com/v1/messages \ -H "content-type: application/json" \ -H "x-api-key: $ANTHR...KEY" \ -H "anthropic-version: 2023-06-01" \ -d '{ "model": "claude-opus-5-5", "max_tokens": 1024, "system": "Always respond in French, regardless of the language the user writes in.", "messages": [ {"role": "user", "content": "How do I reset my password?"} ] }' ```
ant messages create \
  --model claude-opus-5-5 \
  --max-tokens 1024 \
  --system "Always respond in French, regardless of the language the user writes in." \
  --message '{role: user, content: "How do I reset my password?"}'
client = anthropic.Anthropic()

message = client.messages.create(
    model="claude-opus-5-5",
    max_tokens=1024,
    system="Always respond in French, regardless of the language the user writes in.",
    messages=[{"role": "user", "content": "How do I reset my password?"}],
)

print(message.content)
const client = new Anthropic();

const message = await client.messages.create({
  model: "claude-opus-5-5",
  max_tokens: 1024,
  system: "Always respond in French, regardless of the language the user writes in.",
  messages: [{ role: "user", content: "How do I reset my password?" }]
});

console.log(message.content);
AnthropicClient client = new();

var parameters = new MessageCreateParams
{
    Model = Model.ClaudeOpus5_5,
    MaxTokens = 1024,
    System = "Always respond in French, regardless of the language the user writes in.",
    Messages =
    [
        new() { Role = Role.User, Content = "How do I reset my password?" }
    ]
};

var message = await client.Messages.Create(parameters);
Console.WriteLine(message);
client := anthropic.NewClient()

message, err := client.Messages.New(context.TODO(), anthropic.MessageNewParams{
	Model:     anthropic.ModelClaudeOpus5_5,
	MaxTokens: 1024,
	System: []anthropic.TextBlockParam{
		{Text: "Always respond in French, regardless of the language the user writes in."},
	},
	Messages: []anthropic.MessageParam{
		anthropic.NewUserMessage(anthropic.NewTextBlock("How do I reset my password?")),
	},
})
if err != nil {
	log.Fatal(err)
}
fmt.Println(message.Content)
AnthropicClient client = AnthropicOkHttpClient.fromEnv();

MessageCreateParams params = MessageCreateParams.builder()
    .model(Model.CLAUDE_OPUS_5_5)
    .maxTokens(1024)
    .system("Always respond in French, regardless of the language the user writes in.")
    .addUserMessage("How do I reset my password?")
    .build();

Message message = client.messages().create(params);
System.out.println(message.content());
$client = new Client();

$message = $client->messages->create(
    maxTokens: 1024,
    messages: [
        ['role' => 'user', 'content' => 'How do I reset my password?']
    ],
    model: 'claude-opus-5-5',
    system: 'Always respond in French, regardless of the language the user writes in.',
);

echo json_encode($message->content, JSON_PRETTY_PRINT), PHP_EOL;
client = Anthropic::Client.new

message = client.messages.create(
  model: "claude-opus-5-5",
  max_tokens: 1024,
  system: "Always respond in French, regardless of the language the user writes in.",
  messages: [
    { role: "user", content: "How do I reset my password?" }
  ]
)

puts message.content

애플리케이션이 런타임에 사용자가 언어를 고르게 한다면, Claude가 사용자 메시지에서 추론하도록 맡기는 대신 그 선택을 시스템 프롬프트에 삽입하세요. 두 특정 언어 간 번역하려면 둘 다 이름을 밝히세요: Translate the user's message from German to Korean. Respond with only the translation.


모범 사례 (Best practices)

다국어 콘텐츠를 다룰 때:

  1. 명확한 언어 컨텍스트 제공: Claude가 대상 언어를 자동으로 감지할 수 있지만, 원하는 입력·출력 언어를 명시적으로 밝히면 신뢰성이 좋아져요. 유창성을 높이려면 "마치 원어민처럼 관용적인 말투로"라고 프롬프트할 수 있어요.
  2. 고유 문자 사용하기: 최적의 결과를 위해 음차(transliteration) 대신 고유 문자로 텍스트를 제출하세요.
  3. 문화적 맥락 고려하기: 효과적인 의사소통은 종종 순수한 번역 너머의 문화적·지역적 인식을 요구해요.

출력 품질을 더 높이려면 프롬프트 엔지니어링 개요의 일반 지침도 따르세요.


언어 지원 고려 사항

  • Claude는 표준 Unicode 문자를 사용하는 대부분의 세계 언어에서 입력을 처리하고 출력을 생성해요.
  • 성능은 언어에 따라 다르며, 널리 쓰이는 언어에서 특히 강해요.
  • 디지털 리소스가 적은 언어에서도 Claude는 의미 있는 능력을 유지해요.

다음 단계 (Next steps)

Apply general prompting techniques to improve multilingual output quality. Build a localized support chatbot using a language-constrained system prompt. Compare model tiers to balance multilingual quality against cost and latency. Evaluate translation and localization quality before you ship.

더 알아보기 (Learn more)