programing

현지화된 스토리보드의 문자열을 갱신할 수 있습니까?

fastcode 2023. 4. 10. 22:19
반응형

현지화된 스토리보드의 문자열을 갱신할 수 있습니까?

base.lproj 스토리보드와 3개의 문자열 파일을 작성하여 어플리케이션의 일부를 현지화했습니다.한 달 전부터 앱에 새로운 뷰 컨트롤러를 추가했는데 이 컨트롤러의 버튼과 라벨이 문자열 파일에 표시되지 않습니다.

이 3개의 스토리보드 첨부 문자열 파일을 갱신할 수 있습니까?아니면 NSLocalizableString과 Localizable.strings를 사용하여 새로운 문자열 변환을 프로그래밍 방식으로 추가해야 합니까?

두 가지 옵션이 있습니다.

옵션 1

Xcode는 파일을 [Interface Builder Coco Touch Storyboard]파일 형식 또는 [Localizable Strings]파일 형식으로 변환하여 "재로드"할 수 있습니다.

  1. 프로젝트 탐색기에서 기본 스토리보드 파일을 선택합니다.
  2. 파일 인스펙터에서 현지화 섹션을 찾습니다.
  3. 현재 파일이 [Localizable Strings]인 경우 [Interface Builder Coco Touch Storyboard] 또는 그 반대로 변경합니다.
  4. Xcode는 기존 현지화 작업을 유지하면서 스토리보드를 최신 버전으로 변환해야 합니다.여기서 원하는 경우 파일을 원래 파일 형식으로 다시 변경할 수 있습니다.

옵션 2

ibtool을 사용하여 스토리보드의 문자열을 추출합니다.

  1. 터미널 응용 프로그램을 엽니다.

  2. Base.lproj 디렉토리를 찾습니다.

  3. 다음 행을 사용하여 문자열을 추출합니다.

    ibtool MainStoryboard.storyboard --generate-strings-file file_name.strings

  4. ibtool이 file_name.strings에 문자열을 추출한 후 복사하여 원래 .strings 파일에 붙여넣을 수 있습니다.

자세한 것은, https://conyac.cc/business/columns/localization_guide_ios 를 참조해 주세요.

ReMafoX를 확인해 보십시오. 문제를 완벽하게 해결해 주는 Mac 앱입니다.프로젝트에 간단하게 인스톨통합할 수 있습니다.자세한 것은, 이 비디오를 봐 주세요.

또는 GUI를 사용하지 않는 오픈소스 CLI 도구를 사용하는 경우에도 BartyCrouch를 사용할 수 있습니다.


Homebrew를 통해 BartyCrouch 설치:

brew install bartycrouch

또는 Mint를 통해 설치합니다.

mint install Flinesoft/BartyCrouch

스토리보드/X 증분 업데이트IBs 문자열 파일:

$ bartycrouch update

이거면 네가 찾던 대로 할 수 있을 거야.


스토리보드/X를 유지하려면시간이 지남에 따라 업데이트된 IBs Strings 파일(빌드 스크립트 추가 방법에 대한 지침)을 추가할 것을 강력히 권장합니다.

if which bartycrouch > /dev/null; then
    bartycrouch update -x
    bartycrouch lint -x
else
    echo "warning: BartyCrouch not installed, download it from https://github.com/Flinesoft/BartyCrouch"
fi

스토리보드/X의 증분 업데이트와 더불어IBs Strings files 이것은 또한 당신의 파일이 코드에 새로 추가된 키로 확실하게 업데이트되도록 합니다.NSLocalizedString및 에 중복 키 또는 빈 값에 대한 경고를 나타냅니다.

자세한 내용은 GitHub 또는 이 상세 문서에서 BartyCrouch를 확인하십시오.

현지화 파일에 수동으로 키를 추가할 수 있습니다.스토리보드 에디터에서 키 객체를 선택하면 찾을 수 있습니다. 그럼 한번 볼까요?Object-ID마치...인 것 "nwc-b2-19c"

현지화 갱신 또는 번역 추가 시.예를 들어 다음과 같습니다.

"nwc-b2-19c.title" = "Translated title";

모든 사용자를 위한 것은 아니지만 터미널에 추가 툴이 필요하지 않으며 작은 수동 변경도 간단합니다(프로세스를 자동화할 때는 이 점을 고려하지 마십시오).

순서 0: 스토리보드 언어 설정

  • 베이스(영어 텍스트 포함)
  • 영어(기본 파일이 영어이므로 현지화 가능한 문자열 파일이 없습니다)
  • 기타 언어(현지화 가능한 문자열 파일)

기본 구성

이 단계는 한 번만 수행됩니다.

스토리보드에 무언가를 추가할 때 다음과 같이 합니다.

순서 1: 영어 현지화 가능 문자열 파일 추가

영어 추가

영문 줄 항목에 표시만 하면 됩니다.

이렇게 하면 모든 라인이 포함된 완전히 새로운 영어 현지화 가능 문자열 파일이 생성됩니다.

순서 2: 새로운 행 항목을 다른 언어 파일에 복사합니다.

번역해 주세요.

순서 3: 영어 마크를 해제하고 현지화 가능한 문자열 파일을 삭제합니다.

파일은 새 행 항목을 가져오는 데만 필요했습니다.

이것은 간단하고 빠른 프로세스이며, 모든 것은 스토리보드 에디터로 이루어집니다.

편집:

이 과정은 작은 스토리보드에서 매우 잘 작동합니다.예를 들어 탭 기반 프로젝트와 각 탭마다 스토리보드가 있습니다.

튜토리얼을 찾으려면 "스토리보드 참조"를 검색하십시오.

좋은 예:Xcode의 스토리보드 레퍼런스, 어디에 사용하면 좋을까요?

따라서 각 작은 스토리보드에는 현지화할 수 있는 몇 가지 문자열만 있습니다.

마지막으로 Localization language 박스의 선택을 해제하고 체크박스를 켜서 작성한 새로운 파일에 이전 번역을 복사하여 붙여넣는 것이 (개요하지만 효과적이었습니다.

이것은 저와 같은 경우에 한두 개의 텍스트만 변경해야 할 때 유용합니다.

가장 좋은 방법은 내장된 내보내기/가져오기 현지화를 사용하는 것이라고 생각합니다.

  1. 프로젝트 탐색기에서 프로젝트 폴더를 선택합니다.
  2. [ Editor ]> [ Export For Localization ]를 선택합니다.
  3. 모든 변환이 제자리에 남아 있고 XCode가 누락된 문자열을 자동으로 추가합니다.또한 Import하기 전에 XLIFF Editor(예를 들어 online - http://xliff.brightec.co.uk)에서 .syslogiff를 편집하고 XCode에서 편집할 필요가 없습니다.
  4. [ Editor ]> [ Import Localizations ]를 선택하여 저장된 .xliff 파일을 선택합니다.

추신: XLIFF Editor에서 편집하지 않고 3단계를 건너뛰면 XCode에서 새 문자열을 저장할 수 없습니다.이 경우 XLIFF Editor에서 .xlif를 열고 변경 없이 다시 저장한 후 새 파일을 가져옵니다.

스토리보드(예: Main.storyboard)를 클릭하면...오른쪽에는 현지화 메뉴가 표시됩니다(아타치된 이미지 참조).lengage를 선택 취소하고 다시 선택하면 파일이 다시 생성됩니다.그래서 저는 보통 내용을 복사하고 파일을 다시 생성한 다음 복사하고 이미 번역한 내용을 붙여넣습니다.

이것이 제가 사전을 업데이트하는 방법입니다.

여기에 이미지 설명 입력

현이 많은 큰 스토리보드를 준비했어요.두 개의 언어가 기본 영어와 다른 아랍어이다.이 작업은 스크립트 및 NSLocalizableStrings를 사용하지 않고 일부 필드 및 라벨을 스토리보드에 추가하고 현지화를 추가하는 것이었습니다.

다음에 도움이 될 경우:

번째: 예기치 않은 변경을 방지하기 위한 git이 있는지 확인합니다.

  1. 하여 xcode를 누릅니다.Editor->Export For Localization...ar.xlif 파일을 어딘가에 저장합니다.
  2. XLIFF Edtior 다운로드.
  3. ar.xlif 파일을 열고 변경합니다.
  4. 이 파일을 xcode로 Import 합니다.완료! 업데이트된 스토리보드 문자열 파일이 있습니다.

증분 현지화를 지원하는 AppleGlot이라는 Apple 명령줄 도구가 있습니다.아직 시도해 본 적은 없지만, 당신이 (얼마 전에) 검색한 도구와 똑같아 보입니다.

다음은 스토리보드와 xib에서 문자열을 추출하여 기존 번역과 병합하는 스크립트입니다.

프로젝트를 빌드할 때 스크립트를 자동으로 실행하려면 스크립트를 프로젝트 루트 디렉터리에 넣고 다음 행이 포함된 스크립트 실행 단계를 프로젝트 설정의 대상 빌드 단계에 추가하십시오.

./mergegenstrings.py PathToSourceDir

또는 필요할 때 터미널에서 스크립트를 수동으로 실행할 수도 있습니다.

이 실행되다ibtool타리앙시도 하고 .genstringsNSLocalizedString소스코드에 입력해 주세요.이 스크립트는 실행 후 문자열을 병합하는 이 게시물의 스크립트를 기반으로 합니다.genstrings.

가장 쉽고 위험성이 매우 낮은 접근법은 스토리보드에서 오브젝트 ID를 복사하고 로컬화된 파일에 키의 새 키를 추가하는 것입니다.다음은 예를 제시하겠습니다.

1: 컴포넌트의 스토리보드에서 다음과 같이 오브젝트 ID를 복사합니다.

여기에 이미지 설명 입력

2: 다음과 같이 현지화된 파일에 새 키를 추가합니다.

"DjF-dn-0ay.text" = "Borrar datos y restablecer";

주의: 몇 가지 컴포넌트만 업데이트하려는 경우 이 방법은 매우 덜 위험합니다.그렇지 않으면 스토리보드의 현지화된 파일을 다시 만들 수 있습니다.

Xlifftool은 Mac 앱으로 사용할 수 있으며 잘 작동합니다.info.plist, 현지화 가능한 문자열 및 스토리보드의 모든 변환 가능한 문자열과 오브젝트가 표시됩니다.

Mac에 대해서는, https://itunes.apple.com/lv/app/xlifftool/id1074282695?mt=12 를 참조해 주세요.

1단계: Xcode에서 프로젝트 탐색기에서 프로젝트 폴더를 선택합니다.그런 다음 현지화를 위해 Editor/Export...를 선택합니다.

번역 가능한 문자열은 Xcode 현지화를 위해 선택한 언어의 xliff 파일에 포함됩니다.

스텝 2: xlifftool에서 해당 파일을 열고 번역 또는 업데이트를 이전에 수행했습니다.

스텝 3: 다음으로 Editor/Import Localizations를 사용하여 프로젝트에 업로드합니다.

1 션 11
을 Xcode 중을 " 수 있습니다.[Interface Builder Cocoa Touch Storyboard] """ 파일 형식""을 지정합니다.[Localizable Strings]파일 형식.

File Inspector의 Project Navigator Find the Localization 섹션에서 기본 스토리보드 파일을 선택합니다.파일이 현재 파일인 경우[Localizable Strings]로.[Interface Builder Cocoa Touch Storyboard]또는 그 반대입니다.
Xcode는 기존 현지화 작업을 유지하면서 스토리보드를 최신 버전으로 변환해야 합니다.여기서 원하는 경우 파일을 원래 파일 형식으로 다시 변경할 수 있습니다.

2 션 22
ibtool줄거리를 추출할 수 있습니다.

.
의 위치를 찾아보세요.Base.lproj
다음 행을 사용하여 문자열을 추출합니다.

ibtool MainStoryboard.storyboard --generate-strings-file file_name.strings

을 ibtool로 한 후file_name.strings.strings파일.

스토리보드 또는 xib에서 현지화 문자열로 새 텍스트를 쉽게 업데이트할 수 있습니다.

1- 이 스크립트 http://tredje.se/dev/trouble/?x=entry: entry150917-12052를 사용합니다.

2- 업데이트할 현지화 문자열을 선택하고 언어 문자열을 "Localization string"에서 "interface Builder storyboard"로 전환합니다.

3- 스위치백 :)

다 했어요.

여기에 이미지 설명 입력

현지화할 새 언어를 추가합니다.필요 없는 것.

예를 들어, 필요한 모든 스토리보드 버튼 이름 등을 포함하는 "Indonesian.string"을 생성하고, 그것들을 모두 복사하여 가지고 있는 다른 모든 language.string 파일에 붙여넣습니다.

언급URL : https://stackoverflow.com/questions/15094259/is-it-possible-to-update-a-localized-storyboards-strings

반응형