Magento csv 번역 파일 관리


22

시간이 지남에 따라 Magento 핵심 팀은 점점 더 많은 기본 언어 팩을

app/locale 

폴더. 향후 시스템 업그레이드를 방해하지 않도록 고유 한 번역 파일을 관리 할 수있는 방법이 있습니까? 즉, Magento에서 일부 라벨을 변경하고 싶습니다.

app/locale/en_US/Mage_Sales.csv

직접. Magento를 업그레이드하면 변경 사항이 지워집니다. 테마 로케일 기능으로 충분합니까? (모듈 특정 파일을 처리합니까, 아니면 그냥 translate.csv). 아니면 다른 위치에서 파일을로드하기 위해 변환 모델을 다시 작성하는 것이 더 낫습니까? 또는 다른 것?

답변:


17

이 시도.

요약하면, 핵심 모듈의 변환 XPath 아래에 추가 변환 파일을 지정하고 대체 CSV 쌍을 여기에 배치하십시오.

<frontend>
    <translate>
        <modules>
            <Mage_Sales>
                <files>
                    <mr_storms_wicked_translations>Mage_Sales_Custom.csv</mr_storms_wicked_translations>
                </files>
            </Mage_Sales>
        </modules>
    </translate>
</frontend>

5
당신은 너무 빨랐습니다. 나는 그것을 잃기 시작했다.
Marius

15

translate.csv과 비 휴대용 인라인 타 방법이 번역. 나는 이것을 이렇게한다.

각 모듈은 둘 이상의 번역 파일을 지원합니다.

이것을 추가하면 config.xml:

    <translate>
        <modules>
            <[Namespace]_[Module]>
                <files>
                    <default>[Namespace]_[Module].csv</default>
                    <alternative>[Namespace]_[Module]_version2.csv</alternative>
                </files>
            </[Namespace]_[Module]>
        </modules>
    </translate>

파일 [Namespace]_[Module].csv[Namespace]_[Module]_version2.csv번역을 위해로드됩니다.

선언 된 순서대로 처리됩니다.

예를 들어 Mage_Sales.csv파일을 편집하지 말고 추가하거나 수정 해야하는 경우 번역 파일 목록에 다른 파일을 추가하는 모듈을 만드십시오.

이 같은:
app/code/local/Easylife/Sales/etc/config.xml

<?xml version="1.0"?>
<config>
    <modules>
        <Easylife_Sales>
            <version>0.0.1</version>
        </Easylife_Sales>
    </modules>
    <frontend>
        <translate>
            <modules>
                <Mage_Sales>
                    <files>
                        <alternative>Easylife_Sales.csv</alternative>
                    </files>
                </Mage_Sales>
            </modules>
        </translate>
    </frontend>
    <adminhtml>
        <translate>
            <modules>
                <Mage_Sales>
                    <files>
                        <alternative>Easylife_Sales.csv</alternative>
                    </files>
                </Mage_Sales>
            </modules>
        </translate>
    </adminhtml>
</config>

모듈이에 의존하는지 확인하십시오 Mage_Sales.
번역을 관리하기 위해 "한 크기에 맞는"모듈을 만들 수도 있습니다. 필요한 모든 모듈에 대한 대체 변환 파일을 추가하고이 새로운 모듈이 모든 모듈에 의존하는지 확인하십시오.


app/locale/**/Easylife_Sales.csv이 파일 만 살펴 볼까요 ? 파일 시스템의 디렉토리 구분자를 아는 한 하위 폴더도 허용한다고 가정합니다.
pspahn

원하는 경우 하위 폴더를 사용할 수 있다고 생각합니다. 난 그냥 시도하지 않았다.
Marius

9

에 위치한 CSV 파일 app/locale은 핵심 파일로 간주되며 수정해서는 안됩니다. 맞춤 번역을 추가하는 가장 좋은 방법은app/design/frontend/{package}/{theme}/locale/{locale}/translate.csv

translate.csv파일 "Mage_Adminhtml::Sales","Sales"대신 모듈 이름 을 대신 사용할 수도 있습니다 "Sales","Sales". 또한 특정 테마에 맞게 사용자 정의 된 번역을 사용할 수 있습니다.


1
테마 로케일 파일은 작업을 수행하는 빠르고 좋은 방법이지만 동일한 인스턴스에 여러 테마가있는 경우 어떻게해야합니까?
Marius

2
나는 거의 항상 테마별 번역을 선호합니다. 때로는 테마에 공간이 적기 때문에 대신 약어를 사용해야합니다. 이것은 또한 테마 테스트를 더 간단하게 만듭니다.
Pronto

@Pronto 나는 당신이 말한대로했지만 어떤 이유로 Magento가 translate.csv를로드 할 경우에만 app/locale/로드합니다. app/design/frontend/{package}/{theme}/locale/대신 대신 로드하도록 어떻게 지시 합니까? 내 질문을 여기에서보십시오 : stackoverflow.com/questions/26554195/…
Justin Justin

4

디자인 / 테마별 "translate.csv"를 편집 / 작성할 수 있습니다. "모듈 번역 파일"에서 번역을 재정의합니다. 예를 들어 "Mage_Catalog.csv":

"Mage_Catalog::add to basket","into Basket"

따라서 규칙은 "Module Namespace :: string to translation", "번역 된 문자열"입니다. 마 젠토 번역 워크 플로의 마지막 규칙이라고 생각합니다.


1

SemExpert에서는 정확히 그렇게합니다. 고유 한 es_AR 번역 패키지 (CSV 파일 및 전자 메일 템플릿 포함)가 있으며 모든 사용자 정의는 translate.csv 또는 인라인 번역 기능 (매우 드문 최종 사용자의 경우)에 의해 수행됩니다.

우리는 Magento 업그레이드로 인해 번역 파일을 잃을 위험이 없습니다. 마법사가 es_AR을 즉시 지원하지는 않을 것이므로 Magento는 문자열에 약간의 변경 ( '.'을 추가하는 등)을 겪습니다. 영어 문자열을 가장 적게 예상 할 때 나타나는 문장 끝).

새로운 Mage 버전이 출시 될 때마다 사용하는 번역 문자열을 모니터링하는 작은 모듈을 개발하기 시작했습니다. https://github.com/barbazul/SemExpert_TranslationDoctor에서 찾을 수 있습니다.

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