도구번역

From Meta, a Wikimedia project coordination wiki
Jump to navigation Jump to search
This page is a translated version of the page ToolTranslate and the translation is 100% complete.
도구번역 작동 중

Tool번역 도구를 위한 매뉴얼입니다. 자유롭게 번역하세요!

목적

Toolforge의 많은 도구에는 인터페이스 번역이 없습니다. 다시 말해서, 한 언어(일반적으로 영어)로만 제공됩니다. 인터페이스에서 여러 언어를 지원하는 도구조차도 새로운 언어와 번역을 추가하기 위해 투박한 방법을 사용합니다. 도구번역은 커뮤니티(TM)가 도구에 대한 번역을 제공하기 위해 중앙 집중식의 사용자 친화적인 방법을 제공합니다. 도구는 이 메커니즘을 지원해야합니다. 즉, 인터페이스에서 정적 텍스트가 아닌 동적 텍스트를 사용하려면 한 번 "작업"해야합니다. 원본 블로그 게시물.

번역

  1. 도구로 이동
  2. 요청할 경우, 도구 승인
  3. 상단의 드롭 다운 상자 또는 메인 페이지의 목록에서 번역할 도구를 선택
  4. 번역할 언어 선택 또는 추가
  5. 새로운 번역이 들어가야하는 "셀" 또는 개선하려는 번역을 두 번 클릭
  6. 텍스트 입력. HTML(자바 스크립트 없음!)을 사용할 수 있습니다. 동일한 "키 이름"을 가진 다른 도구에서 번역에 대한 제안이 있을 수 있으며, 이를 텍스트의 기초로 사용할 수 있습니다.
  7. 확인을 클릭. 완료! 브라우저 캐싱 문제는 제쳐두고 다음에 로드할 때 번역이 해당 도구에 표시되어야 합니다.

자료

기술

번역은 Toolforge의 데이터베이스에 저장됩니다. 번역의 이전 버전은 유지되며 번역은 해당 편집자에게 귀속됩니다.("최근 변경 사항" 도구를 사용할 수 있습니다.)

번역 데이터에 대한 접근을 단순화하기 위해 모든 번역은 변경될 때마다 업데이트되는 JSON 파일에도 저장됩니다. 예 "demotool1":

  • toolinfo.json, 도구에 대한 정보가 포함된 JSON 파일
  • en.json, 해당 도구의 영어 번역이 포함 된 JSON 파일. 다른 언어는 해당 언어 코드를 사용하여 동일한 방식으로 작동합니다.

모든 유효한 언어가 포함된 JSON 파일도 있습니다.

데이터베이스

소스 데이터는 Toolforge의 tools-db(mysql --defaults-file=~/replica.my.cnf -h tools-db s53069__tooltranslate_p)에 있는 s53069__tooltranslate_p 데이터베이스에 저장됩니다. 필요한 경우 거기에서 데이터를 가져올 수도 있습니다. 다음 표를 사용할 수 있습니다:

  • tool
    • id | name | label | url | owner
  • translation
    • id | tool_id | language | key | json | user | timestamp | current

입문: HTML/JS

입문: PHP

Toolforge에 다음과 같이 포함할 수 있는 PHP 클래스가 있습니다:

require_once ( "/data/project/tooltranslate/public_html/tt.php") ;

그런 다음 클래스를 인스턴스화 할 수 있습니다:

$tt = new ToolTranslation ( array ( 'tool' => 'your_tool_key' , 'language' => 'de' , 'fallback' => 'en' , 'highlight_missing' => true ) ) ; // '도구'를 제외한 모든 것은 선택 사항입니다.

직접 사용

PHP에서 인터페이스 번역을 얻는 방법에는 두 가지가 있습니다. 하나는 번역된 문자열을 직접 가져 오는 것이지만

print "<p>" . $tt->t('translation_key') . "</p>" ;

이것은 페이지를 다시 로드하지 않으면 번역을 변경할 수 없다는 단점이 있습니다.

JS를 통해서 사용하세요.

여러분은 대신에 HTML "번역 태그"(위 참조)를 추가하고 클래스가 필요한 JS 호출을 추가하도록 할 수 있습니다. 또 다른 장점은 위의 "직접" 번역을 사용하지 않으면 PHP 클래스가 번역 파일을 로드할 필요가 없다는 것입니다. HTML/JS 번역을 사용하려면, 여러분 페이지 HTML의 <head> 섹션에 넣을 필요가 있습니다.

<script src="https://tools-static.wmflabs.org/tooltranslate/tt.js">

(jQuery 또한 필요할 것입니다.) 문서를 생성하실 때 위쪽 대신에 다음을 작성하세요:

print "<p tt='translation_key'></p>" ;

출력의 어딘가에 (아마도 끝 부분) 호출 코드를 추가해야합니다:

print $tt->getJS() ;

이렇게하면 필요한 JS가 초기화되고 PHP 인스턴스(대체 언어 등)에서 사용되는 매개 변수가 재생됩니다. "번역 드롭다운"을 원하면 HTML 코드에 감싸기 요소를 추가하세요.

<div id='tooltranslate_wrapper'></div>

그런 다음 "jQuery 접근자"를 getJS 메소드 호출에 대한 매개 변수로 제공하십시오:

print $tt->getJS('#tooltranslate_wrapper') ;

작동 예제는 다음 도구를 참조하세요.