마 젠토 2 현지화 자바 스크립트


16

Magento 2 javascript text translations 와 비슷한 질문이 이미 제기 되었지만 Magento는 베타 버전에서이 번역 기술을 업데이트했습니다.

Javascript에서 사용하는 번역을 추가하거나 업데이트하려면 어떻게해야합니까?

Magento가 정적 폴더에 'js-translation.json'이라는 파일을 생성한다는 것을 알았습니다. 이 파일을 직접 편집하면 번역이 업데이트 된 것을 볼 수 있습니다. 그러나이 파일은 어디에 생성되며 Magento가 생성 될 때 자동으로 이것을 js-translation.json에 추가하도록 번역을 추가 할 수 있습니까?

최신 정보

이 질문에 대한 정답은 여전히 ​​제시되지 않았지만 Mage2.PRO가 나를 올바른 방향으로 안내했지만 정답은 아닙니다. 내 js-translation.json이 생성 될 때 여전히 비어 있습니다.

예를 들어 장바구니에 추가 버튼을 번역하고 싶습니다. 이 버튼에는 장바구니에 추가, 추가 중 및 추가됨의 세 가지 상태가 있습니다.이 단어를 어떻게 번역 할 수 있습니까? 또 다른 예로, '장바구니에 상품이 없습니다.' 미니 카트의 텍스트. 나는이 모든 문구가 js-translation.json에서 번역되어야한다고 생각하지만, 파일을 번역 할 수 있도록 어디에 추가해야합니까?


나는 이것에 대해 100 % 확신하지 못하지만 mage2.pro가 제공 한 답변이 올바른 것이라고 생각합니다. 예를 들어 js 파일 중 하나에이 파일 $.mage.__('Add To Cart')이 있으면 setup:static-content:deploy명령에 의해 자동으로 선택됩니다 . 유일한 발견은 로케일 파일에서 텍스트에 대한 다른 번역을 가져야한다는 것입니다. 번역없이 동일한 텍스트를 가진 텍스트는 이유없이 크기를 늘리지 않기 위해 json 파일에 추가되지 않습니다.
Marius

답변:


10

당신이 이미 알아 낸 것인지 확실하지 않지만 어쨌든 대답 할 것이라고 생각했습니다 ..

다른 답변이 올바른 방향으로 가고 있다고 생각합니다.

번역이 이미 설치되어 있다고 가정하면 다음을 수행하십시오.

bin/magento i18n:pack -m replace -d source_nl_NL.csv . nl_NL

따라서 우선 다른 사람들이 제안한대로 캐시를 지우십시오.

rm -rf var/cache var/generation var/page_cache var/view_preprocessed

둘째, pub / static 폴더를 지우십시오 :

rm -rf pub/static/*/

그런 다음 정적 내용을 재생성합니다 (다른 답변에서 langcode가 누락되었습니다.)

bin/magento setup:static-content:deploy nl_NL -당신이 언어 코드를 추가해야합니다

이제 js-translation.json이 생성되었는지 확인하십시오.

find pub/static/ -name "js-translation.json"

대부분 js-translation.json파일 목록이 나타납니다 . 이 파일을 확인하고 비어 있거나 같은 파일이 있으면 삭제하십시오 [].


1
고마워 Timon, 이것은 실제로 갈 길입니다! 나는 이것을 얼마 전에 스스로 알아 냈지만 아직 여기에 답을 올리지 않았습니다. 이것은 질문에 큰 도움이됩니다.
Silvan

@Silvan 내 설치에서 js-translation.json 파일이 이미 로케일로 번역 된 문구가 있지만 아직 번역되지 않은 문구가 있습니다.이 파일에 수동으로 추가해야합니까?
Luis Garcia

다음에 정적 파일을 배포 할 때 js- 번역 파일을 덮어 쓰므로 권장하지 않습니다. 이 경우 배포를 수행 할 때마다 구를 수동으로 추가해야합니다. 이 문구는 언어 팩에 있습니까?
Silvan

1

.csv 파일에 번역을 추가 한 후 다음 단계가 실행되는지 확인하십시오.

  1. 캐시 저장소를 비워야합니다 (기본적으로 var / cache 및 var / view_preprocessed 폴더는 지워야합니다)
  2. 정적 파일을 재배치해야합니다 (pub / static 내의 모든 폴더를 삭제하고 bin / magento setup : static-content : deploy를 실행하십시오).

0

모든 캐시 및 delele pub / static 폴더 내용을 제거하십시오.

루트 디렉토리로 이동하여 아래 명령을 실행하십시오.

PHP bin / magento 설정 : 정적 내용 : 배포

바라건대 문제가 해결되기를 바랍니다.


ArkadiyCh는 또한 캐시를 제거하고 정적 파일을 재배치하라고 말했습니다. 불행히도 이것은 문제를 해결하지 못합니다.
Silvan

0

phtml의 문구가 완벽하게 작동했을 때 "$ .mage .__ ( 'XXX')에서 문구를 번역 할 수 없습니다"와 같은 문제가있었습니다. 따라서 솔루션은 독창적으로 간단했습니다.

$ t (...) 및 $ .mage는 파일 * .js 만 분석합니다.

결과적으로 js- 번역 사전에 포함되지 않습니다.

따라서 phtml 파일로 섹션 스크립트를 렌더링 할 때는 이미 번역 된 구문을 래퍼로 직접 삽입해야합니다 __('Translated phrase').

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.