เป็นไปได้ไหมที่จะอัพเดตสตริงของสตอรีบอร์ดที่แปลแล้ว


226

ฉันแปลส่วนหนึ่งของแอปพลิเคชันของฉันด้วยการสร้างกระดานเรื่องราว base.lproj และไฟล์สตริง 3 ไฟล์สำหรับมัน เมื่อเดือนก่อนและหลังจากนั้นฉันเพิ่มตัวควบคุมมุมมองใหม่ลงในแอป แต่ปุ่มและป้ายกำกับของตัวควบคุมนี้ไม่ปรากฏในไฟล์สตริง

เป็นไปได้ไหมที่จะอัปเดตไฟล์สตริงสตอรีบอร์ด 3 ไฟล์ที่แนบมานี้หรือฉันต้องเพิ่มการแปลสตริงใหม่โดยใช้โปรแกรมโดยใช้ NSLocalizableString และ Localizable.strings


คำตอบ:


264

มีสองตัวเลือก:

ตัวเลือกที่ 1

Xcode สามารถ "โหลด" ไฟล์โดยการแปลงไฟล์ไปยังทั้งสองนั้น[Interface Builder Cocoa Touch Storyboard]ประเภทของไฟล์หรือ[localizable Strings]ประเภทของไฟล์

  1. เลือกไฟล์สตอรี่บอร์ดพื้นฐานของคุณจาก Project Navigator
  2. ค้นหาส่วนรองรับหลายภาษาใน File Inspector
  3. หากไฟล์ของคุณเป็น [Localizable Strings] ให้เปลี่ยนเป็น [Interface Builder Cocoa Touch Storyboard] หรือในทางกลับกัน
  4. Xcode ควรแปลงสตอรีบอร์ดของคุณเป็นเวอร์ชันปัจจุบันในขณะที่ยังคงความพยายามในการโลคัลไลเซชันเก่าของคุณ ที่นี่คุณสามารถเปลี่ยนไฟล์กลับเป็นประเภทไฟล์ต้นฉบับได้หากต้องการ

ตัวเลือก 2

ใช้ ibtool เพื่อแยกสตริงในสตอรี่บอร์ดของคุณ

  1. เปิดแอปพลิเคชั่น Terminal

  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


1
ฉันลองตัวเลือกที่ 1 แต่การเปลี่ยนประเภทไฟล์จาก [Localizable Strings] เป็น [Interface Builder Cocoa Touch Storyboard] ให้ผลลัพธ์เป็นความผิดพลาดของ Xcode 5.0.1 เหตุผลอาจเป็นเพราะ - ฉันไม่ทราบถึงความเป็นไปได้ - ฉันแก้ไขไฟล์การแปลสตอรีบอร์ดด้วยตนเองก่อนหน้านี้
Reinhard Männer

16
ตัวเลือก 1 works.but คุณต้องเปลี่ยนจาก "Localizable .. " เป็น "interface ... " แล้วกลับมาอีกครั้ง!
João Nunes

3
ตัวเลือก 1 ไม่ทำงานสำหรับฉันที่ใช้ XCode 6.0.1 เมื่อพยายามแปลงไฟล์. strings ของฉันเป็น. Interfacebuilder XCode จะถามว่าควรแปลงไฟล์หรือไม่ ไฟล์ถูกสร้างขึ้นบนระบบไฟล์อย่างไรก็ตามไฟล์สตริงยังคงอยู่และมีค่าเก่า
Bouncing Bit

53
สำหรับฉันตัวเลือกที่ 1 แทนที่สตริงที่แปลแล้วทั้งหมดด้วยภาษาอังกฤษ ฉันต้องเพิ่มการแปลอีกครั้ง
Mihail Velikov

5
ตัวเลือกที่ 1 ดูเหมือนไม่เสถียรใน Xcode 7 บางครั้งก็ใช้งานได้บางครั้งก็ใช้ไม่ได้ บางครั้งมันจะแทนที่สตริงที่แปลแล้วของฉันเป็นเวอร์ชั่นภาษาอังกฤษอีกครั้ง
Adam Johns

76

ลองใช้BartyCrouchแก้ปัญหาของคุณได้อย่างสมบูรณ์แบบ นอกจากนี้ยังเป็นโอเพนซอร์มีการบำรุงรักษาอย่างแข็งขันและสามารถติดตั้งและรวมเข้ากับโครงการของคุณได้อย่างง่ายดาย


ติดตั้ง BartyCrouch ผ่านHomebrew :

brew install bartycrouch

หรือติดตั้งผ่านMint :

mint install Flinesoft/BartyCrouch

อัปเดตไฟล์สตอรี่บอร์ด / XIBs ของคุณเพิ่มขึ้น :

$ bartycrouch update

สิ่งนี้จะทำสิ่งที่คุณต้องการอย่างแน่นอน


เพื่อให้ไฟล์สตอรี่บอร์ด / XIBs ของคุณอัปเดตตลอดเวลาฉันแนะนำให้เพิ่มสคริปต์สร้าง (คำแนะนำเกี่ยวกับวิธีเพิ่มสคริปต์สร้าง) ที่นี่ :

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

นอกเหนือจากการอัปเดตไฟล์สตอรี่บอร์ด / XIBs ของคุณแบบค่อยเป็นค่อยไปสิ่งนี้จะทำให้แน่ใจว่าLocalizable.stringsไฟล์ของคุณจะได้รับการอัปเดตด้วยคีย์ที่เพิ่มเข้ามาใหม่ในรหัสโดยใช้NSLocalizedStringและแสดงคำเตือนสำหรับคีย์ซ้ำหรือค่าว่าง

อย่าลืมเช็คเอาต์ BartyCrouch ในGitHubหรือบทความโดยละเอียดนี้สำหรับข้อมูลเพิ่มเติม


1
ว้าว! เครื่องมือนี้น่าทึ่งมาก ต้องใช้ upvotes มากกว่านี้!
ph1lb4

1
เครื่องมือที่น่ารัก - ไม่ต้องคัดลอก / วางข้อความฉลากใหม่ด้วยตนเองใน * .strings-files (... และลืมการแปลฉลากใหม่เหมือนเดิม) ... ขอบคุณมาก!
iKK

มีพ็อดที่คล้ายกันสำหรับโครงการ OBJC หรือไม่
rickrvo

2
นี่คือคำตอบที่เรากำลังมองหา นี่ควรเป็นคำตอบที่ยอมรับได้
Juanjo

3
ฉันไม่เข้าใจว่าทำไมหลังจาก 6 ปีนับตั้งแต่มีการถามคำถามนี้และวิธีการแก้ปัญหานี้ยังต้องใช้เพื่อให้ Xcode ทำงานได้ Apple ควรจะทำสิ่งนี้
huggie

57

คุณสามารถเพิ่มรหัสด้วยตนเองในไฟล์การแปลของคุณ คุณสามารถค้นหาวัตถุสำคัญได้โดยเลือกจากตัวแก้ไขกระดานเรื่องราว ลองมาดูObject-IDในตัวตรวจสอบตัวตน มันดูเหมือน"nwc-b2-19c"

ในการปรับปรุงการแปลหรือเพิ่มการแปลของคุณ ตัวอย่างเช่น :

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

8
คิดว่ามันเป็นวิธีที่มีความเสี่ยงน้อยกว่า
Nicolas Manzini

แต่ Object-ID บางรายการไม่แสดงในไฟล์. string เพราะพวกเขาไม่ได้เชื่อมต่อ ดังนั้นในเวลานั้นฉันจะทำอย่างไร
Mihir Oza

มีวิธีการเลือกผ่านชื่อไม่ใช่เฉพาะ id ที่สร้างขึ้นอัตโนมัติหรือไม่
cocoseis

สำหรับ UILabel คือ: "YeB-ap-Wkw.text" = "ข้อความป้ายกำกับของฉัน";
ioopl

30

อันนี้ไม่ได้สำหรับทุกคน แต่มันไม่จำเป็นต้องมีเครื่องมือเพิ่มเติมใน terminal และมันง่ายสำหรับการเปลี่ยนแปลงด้วยตนเองเล็กน้อย (อย่าพิจารณาสิ่งนี้เมื่อคุณต้องการทำให้กระบวนการของคุณเป็นแบบอัตโนมัติ)

ขั้นตอนที่ 0: การตั้งค่าภาษากระดานเรื่องราว

  • ฐาน (พร้อมข้อความภาษาอังกฤษ)
  • อังกฤษ (ไฟล์สายอักขระที่แปลได้ไม่อยู่เนื่องจากไฟล์ฐานเป็นภาษาอังกฤษ)
  • ภาษาอื่น ๆ (ไฟล์สตริงที่ปรับขนาดได้)

การกำหนดค่าฐาน

ขั้นตอนนี้ทำได้เพียงครั้งเดียว

ตอนนี้เมื่อฉันเพิ่มบางสิ่งลงในกระดานเรื่องราวฉันต้องทำสิ่งต่อไปนี้

ขั้นตอนที่ 1: เพิ่มไฟล์สตริงที่แปลเป็นภาษาอังกฤษ

เพิ่มภาษาอังกฤษ

เพียงทำเครื่องหมายรายการโฆษณาภาษาอังกฤษ

สิ่งนี้จะสร้างไฟล์สตริงที่แปลเป็นภาษาอังกฤษใหม่ทั้งหมดโดยมีบรรทัดทั้งหมด

ขั้นตอนที่ 2: คัดลอกรายการโฆษณาใหม่ลงในไฟล์ภาษาอื่น

และแปลพวกเขา

ขั้นตอนที่ 3: ยกเลิกการทำเครื่องหมายเป็นภาษาอังกฤษให้ลบไฟล์สตริงที่ปรับเปลี่ยนได้ที่สอดคล้องกัน

ไฟล์นี้จำเป็นสำหรับรับรายการโฆษณาใหม่เท่านั้น

นี่เป็นกระบวนการที่ง่ายและรวดเร็วทุกอย่างทำในเครื่องมือแก้ไขสตอรีบอร์ด

แก้ไข:

กระบวนการนี้ใช้ได้ดีกับกระดานเรื่องราวขนาดเล็ก ตัวอย่างเช่นฉันมีโครงการที่ใช้แท็บและฉันมีกระดานเรื่องราวสำหรับแต่ละแท็บ

ค้นหา "การอ้างอิงกระดานเรื่องราว" เพื่อค้นหาบทช่วยสอน

ตัวอย่างที่ดี: การอ้างอิงสตอรีบอร์ดใน Xcode เราควรใช้ที่ไหน

ดังนั้นแต่ละกระดานเรื่องราวขนาดเล็กมีเพียงไม่กี่สตริงในการแปล


ที่ดี! คุณค้นพบแนวคิดเกี่ยวกับวิธีลบองค์ประกอบที่ถูกลบออกหรือไม่
Tobe

@Tobe ถ้าคุณแยกกระดานเรื่องราวของคุณตามที่ฉันแนะนำข้างต้นมันเป็นเรื่องง่ายมากที่จะเห็นสตริงที่ไม่ได้ใช้อีกต่อไป
Gerd Castan

15

ในที่สุดโซลูชันของฉันคือ (พื้นฐาน แต่มีประสิทธิภาพ) คัดลอกคำแปลก่อนหน้านี้และวางไว้ในไฟล์ใหม่ที่สร้างขึ้นโดยยกเลิกการเลือกและตรวจสอบกล่องภาษารองรับหลายภาษา

สิ่งนี้จะเป็นประโยชน์ในบางกรณีเช่นของฉันเมื่อคุณต้องเปลี่ยนเพียงหนึ่งหรือสองข้อความ


สิ่งนี้จะรักษารหัสและเช่นตลอดเวลา? ฉันทำการทดสอบหนึ่งครั้งและดูเหมือนว่าจะใช้งานได้ แต่อาจเป็นหายนะหากรหัสเปลี่ยนไป
ullstrm

ฉันคิดอย่างนั้นฉันทำมาหลายครั้งแล้วโดยไม่มีปัญหา
jpl850

1
ID จะถูกกำหนดเมื่อคุณลบองค์ประกอบ UI พวกเขาเป็นอิสระจากการแปลตามที่ได้รับมอบหมายจากกระดานเรื่องราว ดังนั้นจะไม่มีผลกับ ID
iBug

ขอบคุณ iBug สำหรับคำอธิบาย =)
jpl850

14

ฉันคิดว่าวิธีที่ดีที่สุดคือการใช้การส่งออก / นำเข้าการแปลในตัว:

  1. ใน Project Navigator เลือกโฟลเดอร์โครงการของคุณ
  2. เลือกเครื่องมือแก้ไข> ส่งออกสำหรับการแปล
  3. การแปลทั้งหมดที่เหลืออยู่ในสถานที่ของพวกเขาและ XCode เพิ่มสตริงที่ไม่ได้รับโดยอัตโนมัติ นอกจากนี้ก่อนนำเข้าคุณสามารถแก้ไข. xliff ในตัวแก้ไข XLIFF (ตัวอย่างเช่นออนไลน์ - http://xliff.brightec.co.uk ) จากนั้นคุณไม่จำเป็นต้องทำสิ่งนี้ใน XCode
  4. จากนั้นแก้ไข> นำเข้าการแปลภาษาท้องถิ่นและเลือกไฟล์. xliff ที่บันทึกไว้

PS หากคุณไม่ต้องการแก้ไขใน XLIFF Editor และข้ามขั้นตอนที่ 3 ไปแล้ว XCode ไม่สามารถบันทึกสตริงใหม่ได้ ในกรณีนี้เปิด. xliff ในตัวแก้ไข XLIFF ให้บันทึกอีกครั้งโดยไม่มีการเปลี่ยนแปลงและนำเข้าไฟล์ใหม่


1
+1 วิธีที่ง่ายและเหมาะสมในการทำงานกับ Localization ยิ่งไปกว่านั้นมันเป็นวิธีที่ดีที่สุดสำหรับApple
Jurasic

1
ใช้ Xcode 7.3.1 ในโครงการตัวอย่างที่แปลเป็นภาษาท้องถิ่นแล้วฉันเปลี่ยนป้ายกำกับ (จาก "ข้อความ" เป็น "ข้อความพื้นฐาน") และฉันเพิ่มป้ายกำกับใหม่ ฉันส่งออกเพื่อการแปลแตะไฟล์. xliff (โดยไม่มีการเปลี่ยนแปลง) และนำเข้าอีกครั้ง ในไฟล์ Main.strings บรรทัดข้อคิดเห็นสำหรับเลเบลที่ถูกเปลี่ยนได้รับการอัพเดต/* Class = "UILabel"; text = "a basic text"; ObjectID = "HFW-aN-MTb"; */แต่เลเบลใหม่ไม่ได้ถูกสร้างขึ้นในไฟล์ Main.strings จากนั้นฉันแก้ไขไฟล์. xliff เพื่อเพิ่มการแปลสำหรับป้ายกำกับใหม่ ฉันนำเข้าอีกครั้ง ตอนนี้ป้ายกำกับใหม่จะถูกแทรกในไฟล์ Main.strings
duthen

+1 แต่มีข้อผิดพลาดที่ฉันค้นพบ เมื่อเพิ่มองค์ประกอบใหม่พวกเขาไม่ได้อยู่ในไฟล์ที่ส่งออก (เช่น duthen พูด) แต่เมื่อฉันส่งออกหลังจาก (โดยไม่มีการเปลี่ยนแปลงสตอรี่บอร์ด) องค์ประกอบที่เพิ่มเข้ามาทั้งหมดรวมอยู่ด้วยอย่างน่าประหลาดใจ ดังนั้นการส่งออกสองครั้ง องค์ประกอบที่สองจะรวมองค์ประกอบใหม่ทั้งหมด ขอบคุณ Apple!
Viktor Kucera

6

เมื่อคุณคลิกในสตอรีบอร์ดของคุณ Main.storyboard ตัวอย่างเช่น ... ทางด้านขวาคุณสามารถดูเมนูการแปล (ดูรูปที่ได้รับการสแกน) หากคุณยกเลิกการเลือกและตรวจสอบ lenguage อีกครั้งไฟล์จะถูกสร้างขึ้นอีกครั้ง ดังนั้นฉันมักจะคัดลอกเนื้อหาฉันสร้างไฟล์อีกครั้งแล้วฉันวางเนื้อหาที่ฉันคัดลอกและแปลแล้ว

นี่คือวิธีที่ฉันใช้เพื่ออัปเดตพจนานุกรม

ป้อนคำอธิบายรูปภาพที่นี่


ด้วย Xcode 10 ถ้าคุณใช้คอมไพล์มันจะเน้นความแตกต่าง!
Ricardo Ruiz Romero

ใช่เป็นไปได้ ... ตอนนี้ไฟล์ของฉันใหญ่กว่าในวันที่นี้และฉันรวมกับรุ่นที่เก็บหลังจากสร้างขึ้นอีกครั้ง
J. Fdez

5

ฉันมีสตอรี่บอร์ดขนาดใหญ่ที่มีสายอักขระมากมาย ภาษาอังกฤษและภาษาอาหรับอีกสองภาษา ภารกิจคือการเพิ่มบางฟิลด์และเลเบลลงในกระดานเรื่องราวและเพิ่มการโลคัลไลซ์เซชันสำหรับพวกเขาโดยไม่มีสคริปต์และ NSLocalizableStrings

สำหรับฉันช่วยต่อไป:

ก่อน : มั่นใจว่าคุณมีคอมไพล์เพื่อป้องกันการเปลี่ยนแปลงที่คาดไม่ถึง

  1. ไปที่หน้าจอเป้าหมายใน Xcode และกด->Editor Export For Localization...บันทึกไฟล์ar.xliff ที่ใดที่หนึ่ง
  2. ดาวน์โหลดXLIFF Edtior
  3. เปิดไฟล์ ar.xliff และทำการเปลี่ยนแปลง
  4. นำเข้าไฟล์นี้ใน xcode ทำ! คุณได้อัปเดตไฟล์สตริงสตอรีบอร์ดแล้ว

เพื่อให้ทำงานได้ก่อนอื่นให้เลือกโครงการหรือเป้าหมายในเครื่องมือแก้ไขโครงการ Xcode
Chuck Boris

4

มีแอปเครื่องมือบรรทัดคำสั่งจาก Apple ชื่อAppleGlotที่รองรับการแปลที่เพิ่มขึ้น ฉันยังไม่ได้ลอง แต่ดูเหมือนว่าเครื่องมือที่คุณค้นหา (บางครั้งก่อนหน้า)


appleglotเครื่องมือที่จะทำงานร่วมกับแอพลิเคชันการรวมกลุ่มสุดท้าย มันเป็นวิธีการที่แตกต่างอย่างสิ้นเชิงสำหรับการใช้งานการแปล
Flovdis

1
มีอะไรผิดปกติกับ "วิธีการที่แตกต่าง" หรืออะไรทำให้เกิด downvote?
tilo

ต้องค้นหา AppleGlot ในลิงค์นี้ทันที
NSDeveloper

4

นี่คือสคริปต์เพื่อแยกสตริงจากกระดานเรื่องราวและ xibs และรวมเข้ากับการแปลที่มีอยู่

ในการรันสคริปต์โดยอัตโนมัติเมื่อคุณสร้างโครงการให้ใส่สคริปต์ลงในไดเรกทอรีรากโครงการของคุณและเพิ่มเฟสเรียกใช้สคริปต์ด้วยบรรทัดต่อไปนี้ไปยังเฟสสร้างเป้าหมายในการตั้งค่าโครงการของคุณ

./mergegenstrings.py PathToSourceDir

หรือคุณสามารถเรียกใช้สคริปต์บนเทอร์มินัลด้วยตนเองเมื่อคุณต้องการ

สคริปต์ทำงานibtoolตามคำสั่งของท่าเหลียง นอกจากนี้ยังทำงานgenstringsเพื่อแยกและผสานสตริงที่มีเครื่องหมายNSLocalizedStringในซอร์สโค้ดของคุณ สคริปต์จะขึ้นอยู่กับสคริปต์ในโพสต์นี้genstringsซึ่งผสานสตริงหลังจากการทำงาน


คุณสามารถให้ข้อมูลเพิ่มเติมเกี่ยวกับวิธีใช้สิ่งนี้ได้อย่างไร
user023

1
ฉันเพิ่มความคิดเห็นในส่วนสำคัญ หวังว่ามันจะช่วย gist.github.com/yoichitgy/29bdd71c3556c2055cc0
Yoichi Tagaya

ขอบคุณทำงานได้อย่างสมบูรณ์แบบสำหรับฉัน หากใครบางคนมีปัญหาเกี่ยวกับการอนุญาตนี่อาจเป็นประโยชน์: stackoverflow.com/questions/9850936/…
iCode

สคริปต์นี้ใช้งานได้ดีสำหรับไฟล์ Storyboard Main.strings แต่ดูเหมือนว่าจะเขียนทับ Localizable.strings ของฉันการแปลใน Xcode 7
Adam Johns

3

วิธีที่ง่ายและมีความเสี่ยงน้อยที่สุดเพียงคัดลอก Object ID จากสตอรี่บอร์ดและเพิ่มคีย์ใหม่สำหรับคีย์ในไฟล์ที่แปลแล้วดังตัวอย่างด้านล่าง:

1:คัดลอก id วัตถุด้านล่างจากกระดานเรื่องราวสำหรับส่วนประกอบ:

ป้อนคำอธิบายรูปภาพที่นี่

2:เพิ่มคีย์ใหม่ในไฟล์ที่ถูกแปลเช่นด้านล่าง:

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

หมายเหตุ:นี่เป็นวิธีที่มีความเสี่ยงน้อยกว่าหากคุณต้องการอัปเดตองค์ประกอบเพียงไม่กี่อย่างเท่านั้นมิฉะนั้นคุณสามารถสร้างไฟล์ที่แปลแล้วสำหรับกระดานเรื่องราว


ขอบคุณสำหรับคำตอบ!!!!!. ฉันมีคำถามถามในโครงการของฉันฉันไม่ได้สร้างเต้าเสียบสำหรับป้ายกำกับบางปุ่ม ... ถ้าฉันใช้ objectID สำหรับปุ่มและป้ายเหล่านั้นเพียงพอหรือไม่
Harikarthick K

3

Xlifftool พร้อมใช้งานเป็นแอพ Mac และใช้งานได้ดี มันแสดงสตริงและวัตถุที่แปลได้ทั้งหมดจาก info.plist สตริงที่แปลได้และกระดานเรื่องราว

รับได้ที่นี่สำหรับ mac: https://itunes.apple.com/lv/app/xlifftool/id1074282695?mt=12

ขั้นตอนที่ 1: ใน Xcode เลือกโฟลเดอร์โครงการของคุณในตัวนำทางโครงการ จากนั้นเลือกตัวแก้ไข / ส่งออกสำหรับการแปล ...

สตริงที่สามารถแปลได้ของคุณจะรวมอยู่ในไฟล์ xliff ภายใต้ภาษาที่คุณเลือกสำหรับการแปลใน Xcode

ขั้นตอนที่ 2: เปิดไฟล์ด้วย xlifftool แล้วแปลหรืออัปเดตการแปลของคุณที่เคยทำมาก่อนหน้านี้

ขั้นตอนที่ 3: จากนั้นอัปโหลดกลับสู่โครงการของคุณด้วยตัวแก้ไข / นำเข้าการแปลภาษา ...


อีกหนึ่งทางเลือกสำหรับ MacOS เป็นLoca สตูดิโอ เช่นเดียวกับ Xlifftool แอปสามารถเปิดผลลัพธ์ของตัวแก้ไขการกระทำ Xcode -> ส่งออกเพื่อรองรับหลายภาษา มันมีคุณสมบัติการกรองและการค้นหาขั้นสูงอีกทั้งยังมีการตรวจสอบคุณภาพอัตโนมัติ (การเปิดเผยอย่างเต็มรูปแบบ: ฉันเป็นผู้พัฒนาหลัก)
guru_meditator

0

นี่เป็นวิธีง่ายๆในการอัปเดตข้อความใหม่จากสตอรีบอร์ดหรือ xib ไปยังสตริงการแปลภาษาท้องถิ่น

1- ใช้สคริปต์นี้http://tredje.se/dev/trouble/?x=entry:entry150917-204052

2- เลือกสตริงการแปลที่คุณต้องการอัปเดตและเปลี่ยนสตริงภาษาของคุณจาก "สตริงการแปลท้องถิ่น" เป็น "Storyboard Builder ของอินเตอร์เฟส"

3- สลับกลับ :)

เสร็จสิ้น

ป้อนคำอธิบายรูปภาพที่นี่


มันจะเปลี่ยนไฟล์เป็น Interface Builder Storyboard แต่กลับมาอีกครั้งหลังจาก 1 หรือ 2 วินาทีย้อนกลับไปเป็น Localizable Strings และไม่ต้องเพิ่ม Localizable Strings สำหรับข้อความมุมมองใหม่
Mujahid Latif

@MujahidLatif ฉันใช้ Pod นี้ตอนนี้มันมีประโยชน์กับฉันจริงๆและสามารถอัปเดตการแปลสตอรีบอร์ดและ Localization.String ได้เช่นเดียวกับ github.com/Flinesoft/BartyCrouch
Fadi Abuzant

0

ตัวเลือกที่ 1
Xcode สามารถ“ รีโหลด” ไฟล์โดยการแปลงไฟล์เป็น[Interface Builder Cocoa Touch Storyboard]ประเภทไฟล์หรือ[Localizable Strings]ชนิดไฟล์

เลือกไฟล์สตอรี่บอร์ดพื้นฐานของคุณจากส่วนProject Navigator ค้นหาตำแหน่งรองรับหลายภาษาในFile Inspectorสารวัตรไฟล์หากไฟล์ของคุณเป็นไฟล์ในปัจจุบันให้[Localizable Strings]เปลี่ยนเป็น[Interface Builder Cocoa Touch Storyboard]หรือกลับกัน
Xcode ควรแปลงสตอรีบอร์ดของคุณเป็นเวอร์ชันปัจจุบันในขณะที่ยังคงความพยายามในการโลคัลไลเซชันเก่าของคุณ ที่นี่คุณสามารถเปลี่ยนไฟล์กลับเป็นประเภทไฟล์ต้นฉบับได้หากต้องการ

ตัวเลือก 2
ใช้ibtoolเพื่อแยกสตริงในกระดานเรื่องราวของคุณ

เปิดแอปพลิเคชั่น Terminal
ค้นหาBase.lprojไดเรกทอรีของคุณ
ใช้บรรทัดนี้เพื่อแยกสตริง:

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

หลังจาก ibtool แยกสตริงไปที่file_name.stringsคุณสามารถคัดลอกและวางลงใน.stringsไฟล์ต้นฉบับของคุณ

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.