วิธีการจัดระเบียบทรัพยากรสตริงการแปล


14

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

วิธีที่ดีที่สุดในการจัดระเบียบและตั้งชื่อสตริงการแปลคืออะไร

นี่คือความคิดของฉัน:

การจัดการรายการที่ซ้ำกัน

ข้อความเดียวกัน (พูดว่า "รหัสไปรษณีย์") อาจเกิดขึ้นหลายครั้งภายในแพ็คเกจที่กำหนด Programming สัญชาตญาณ (แห้ง) บอกฉันเพื่อสร้างทรัพยากรสายเดียวที่ใช้ร่วมกันโดยเกิดขึ้นทั้งหมด

จากนั้นอีกครั้งนักแปลอาจต้องการเลือกการแปลที่ยาว ("Postleitzahl") ในบางแห่งและอีกอันที่สั้นกว่า ("PLZ") ในที่ที่มีพื้นที่น้อย หรือเราอาจตัดสินใจต่อท้ายเครื่องหมายจุดคู่กับเหตุการณ์บางอย่าง ("รหัสไปรษณีย์:") แต่ไม่ใช่สำหรับบางคน หรือเราอาจต้องการตัวพิมพ์ใหญ่ ("รหัสไปรษณีย์") ที่แตกต่างกันในบางสถานที่ ข้อโต้แย้งทั้งหมดเหล่านี้ชี้ไปที่การสร้างทรัพยากรต่อการใช้งานแม้ว่าเนื้อหาของพวกเขาเหมือนกัน

การตั้งชื่อ

ถ้าเรามุ่งมั่นที่จะกำจัดข้อมูลซ้ำมันทำให้รู้สึกไปยังแหล่งข้อมูลชื่อตามเนื้อหาอาจจะกระทบถึงชนิดของการใช้งานผ่านทางคำนำหน้า ดังนั้นเราอาจมีlabelOK= "ตกลง" , messageFileTooLarge= "ไฟล์เกินขนาดไฟล์สูงสุด" และlabelZipCode= "รหัสไปรษณีย์"

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

อย่างไรก็ตามหากเราอนุญาตการซ้ำซ้อนการตั้งชื่อตามเนื้อหาเพียงอย่างเดียวไม่สมเหตุสมผล เพื่อให้ได้รับชื่อทรัพยากรที่ไม่ซ้ำกันเราจะต้องรวมถึงสถานที่การใช้งานในชื่อทรัพยากร ผลงานที่สำหรับการควบคุมกราฟิกแม้ว่าตัวระบุมีแนวโน้มที่จะได้รับบิตยาว: fileSelectionConfirmationButtonText= "OK" , customerDetailsTableColumnZipCode= "รหัสไปรษณีย์" อย่างไรก็ตามสำหรับไฟล์รหัสที่ไม่ใช่แบบเห็นภาพนั้นจะยากขึ้น คุณจะตั้งชื่อการใช้งานที่เฉพาะเจาะจงของสตริงได้อย่างไรหากคุณไม่รู้ว่ามันจะปรากฏที่ใดในที่สุด? โดยไฟล์รหัสและชื่อฟังก์ชั่น? ดูเหมือนจะค่อนข้างงุ่มง่ามและเปราะสำหรับฉัน

โดยรวมแล้วฉันกำลังโน้มน้าวให้อนุญาตการทำซ้ำ แต่ฉันพยายามดิ้นรนเพื่อหารูปแบบการตั้งชื่อที่สอดคล้องซึ่งสนับสนุนสิ่งนี้

แก้ไข:คำถามนี้มีสองด้าน: วิธีจัดระเบียบทรัพยากร (DRY กับรายการซ้ำ) และวิธีตั้งชื่อทรัพยากรเหล่านั้น เพื่อให้ห่างไกลคำตอบได้มุ่งเน้นในด้านแรก ฉันขอขอบคุณข้อเสนอแนะบางส่วนเกี่ยวกับการตั้งชื่อการประชุม!


1
หากคุณมีแพ็กเกจขนาดเล็กที่มี loc ตั้งแต่ละชุดคำถามจะเกิดขึ้นไม่ว่าคุณจะเห็นรายการซ้ำซ้อนกันหรือไม่ ฉันจะไปกับรายการที่ซ้ำกันและจะไม่กังวลมากเกินไปเกี่ยวกับตัวระบุในรหัส
Martin Ba

"คุณจะตั้งชื่อการใช้งานเฉพาะของสตริงได้อย่างไรถ้าคุณไม่รู้ว่ามันจะปรากฏที่ใดในที่สุด?" นี่จะเป็นสัญลักษณ์ของข้อบกพร่องกับการออกแบบหรือไม่ซึ่งมันผสมตรรกะ (การตัดสินใจว่าจะแสดงที่ไหน ) และการนำเสนอ (จริง ๆ แล้วแสดง) มันจะแปลกมากสำหรับคุณที่จะสร้างข้อความด้วยข้อมูลภูมิภาค แต่ถือว่าเหมือนวัตถุข้อมูลภายในอื่น ๆ ที่คุณสามารถเลื่อนไปมาได้
อัลฟ่า

คำตอบ:


8

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

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

เป็นตัวอย่าง: พิจารณาป้ายกำกับ "เงื่อนไข" ซึ่งขึ้นอยู่กับบริบท - อาจแปลเป็น "Zustand" หรือ "Bedingung" เป็นภาษาเยอรมัน


อ๋อ นี้.
zanlok

2

ยอมรับรายการที่ซ้ำกัน

คุณสามารถหลีกเลี่ยงการแปลหลาย ๆ คำโดยสร้างการควบคุมเพิ่มเติม เช่นCancelButtonและOKButtonที่มีข้อความอยู่แล้วและตอนนี้ยกเลิก / Abbrechen OK / OK จะต้องแปลเพียงครั้งเดียว แต่นั่นเป็นกรณีพิเศษ


2

นี่คือวิธีที่เราจัดการกับ บริษัท ของฉัน:

แบบแผนการตั้งชื่อ: เราตั้งชื่อป้ายกำกับโดยนำหน้าด้วยชั้น / ส่วน / แบบฟอร์ม / ฯลฯ ยกตัวอย่างเช่นloadFile_loadButton, loadFile_fileNameLabel, loadFile_cancelมีป้ายกำกับทั้งหมดที่อยู่ในการเจรจาโหลดไฟล์ แม้ว่าแบบแผนการประชุมนี้เน้นว่าไม่ได้เป็นเรื่องธรรมดา แต่เราให้ความสำคัญกับอนุสัญญามาตรฐานมากขึ้นเพราะมันช่วยเพิ่มความสามารถในการอ่านและ "การจัดกลุ่ม": สังเกตว่ามันง่ายแค่ไหนที่จะเห็นองค์ประกอบของป้ายกำกับ ชื่อloadFileLoadButton, และloadFileNameLabel loadFileCancelคุณอาจคิดว่าความแตกต่างนั้นไม่ใหญ่มากนัก แต่เมื่อคุณมีฉลากนับพันฉลากเอฟเฟกต์คุ้มค่า

ความคิดเห็นส่วนหัว: เพิ่มเติมจากคำนำหน้าชื่อป้ายกำกับเรายังเพิ่มความคิดเห็น "ส่วนหัว" ลงในไฟล์ทรัพยากรเพื่อกำหนดกลุ่มป้ายกำกับอย่างชัดเจน ด้วยวิธีนี้บางคนที่ต้องการแก้ไขหรือเพิ่มป้ายกำกับเฉพาะที่เกี่ยวข้องกับคลาส / ส่วน / แบบฟอร์ม / ฯลฯ สามารถค้นหาป้ายกำกับทั้งหมดที่เกี่ยวข้องกับองค์ประกอบนั้นได้ในที่เดียวภายใต้หัวข้อเดียวและสามารถเพิ่มหรือแก้ไขป้ายกำกับได้อย่างง่ายดาย การรู้ว่าพวกเขาจะไม่ทำลายการแปลสำหรับองค์ประกอบอื่น ๆ (IMHO นี่เป็นจุดที่แข็งแกร่งมากว่าทำไมคุณต้องอนุญาตการทำซ้ำ)

การทำสำเนา "ชิดขอบ" เป็นที่ต้องการ ดังที่ได้กล่าวมาแล้วการปฏิบัติเหล่านี้จะนำไปสู่การติดฉลากที่ซ้ำกันอย่างแน่นอน แต่เราไม่เห็นปัญหาใด ๆ กับสิ่งนั้น (เพิ่มเติมเกี่ยวกับวิธีจัดการสิ่งนี้ใน

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

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

ข้อสรุป: การ ทำสำเนาอย่างถูกต้องและการจัดกลุ่มป้ายกำกับตามบริบทช่วยให้ผู้แปลทำงานได้จริง ครั้งใหญ่. ลองคิดดูสิการมีบริบทจะช่วยให้นักแปลเลือกการแปลที่เหมาะสม และการอนุญาตการทำสำเนา "ที่ชอบธรรม" จะช่วยลดความขัดแย้งในการเลือกการแปลหนึ่งรายการที่เหมาะสมกับบริบทบางอย่างที่ไม่ดี (แต่เป็นแบบที่ดีที่สุดโดยรวมอยู่แล้ว)

ฉันหวังว่านี่จะช่วยได้!


1

เมื่อฉันทำสิ่งนี้ในอดีตเราก็ลงเส้นทางของไฟล์ทรัพยากรที่มีประโยคเต็ม หากมีการใช้ประโยคเดียวกันอย่างยอดเยี่ยมซ้ำ ๆ กัน แต่ถ้าเป็นเพียงคำ ๆ เดียวจากภายในประโยคคำเหล่านั้นจะถูกทำซ้ำ

เราเชื่อมโยงกับเฟรมเวิร์กที่ไฟล์ทรัพยากรมีรายการวลีภาษาอังกฤษตามด้วยการแปล (พร้อมข้อมูลการทำดัชนีบางรายการในตอนท้ายเพื่อการค้นหาอย่างรวดเร็ว)

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

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

ตัวอย่างเช่น "ต้องใส่รหัสไปรษณีย์" อาจจำเป็นต้องแปลตัวอักษรที่เทียบเท่าของ "รหัสไปรษณีย์ที่ป้อนต้องเป็น" ในภาษาอื่น หากคุณตัดประโยคที่คุณไม่ได้รับการกลับคำว่าในภาษาอื่น

นั่นเป็นสาเหตุว่าทำไมการแปลภาษาอังกฤษที่ดูแย่มากดูไร้สาระผู้ที่ทำมันก็แปลคำศัพท์แต่ละคำไม่ใช่ประโยคทั้งหมด

เราพบว่ามันเป็นการดีที่สุดในการแปลประโยคโดยรวมโดยไม่ทำให้แตก เรามีผู้ถือสถานที่สำหรับข้อมูลที่จำเป็นต้องใส่ (เช่น "หมายเลขชิ้นส่วน @ 1 ซ้ำซ้อน") และผู้แปลสามารถย้ายเจ้าของสถานที่ไปยังตำแหน่งที่พวกเขาต้องการเพื่อการแปลที่ดี

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


เผง เราก็ทำเช่นนี้ อย่าพยายามแบ่งป้ายกำกับ / ประโยคในการแปล
Martin Ba

1
ฉันกลัวว่าไม่ได้ตอบคำถามของฉัน ฉันยอมรับอย่างแน่นอนว่าประโยคไม่ควรถูกทำลาย อย่างไรก็ตามทรัพยากรส่วนใหญ่ไม่ใช่ประโยค แต่เป็นป้ายกำกับที่เรียบง่าย (ข้อความปุ่มส่วนหัวตารางป้ายชื่อฟอร์ม ฯลฯ )
Daniel Wolf

ในกรณีนี้ฉันจะเก็บครั้งเดียวและนำกลับมาใช้ใหม่ การพิจารณานอกขอบเขตของสิ่งที่คุณกำลังทำอยู่โดยตรงคือค่าใช้จ่ายของนักแปล ที่จริงแล้วเรามีผู้ขายรายใหม่ของเราทั่วโลกให้เงินทุนสำหรับพวกเขาเองและทดสอบการแปลภายในแอปพลิเคชัน พวกเขาต้องการหลีกเลี่ยงการทำซ้ำที่แน่นอนที่สุด
RosieC

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

0

ความคิดในการตั้งชื่อของคุณนั้นดี

วัตถุประสงค์

  • กำหนดป้ายกำกับทั่วไป (เช่นชื่อตัวแปร) สำหรับข้อความที่แปลเป็นภาษาท้องถิ่น
  • ฉลากควรเป็น "ขนาดจิตใจ" นั่นคือ ... สั้น ๆ ในทางปฏิบัติในขณะที่ไม่มีความชัดเจน
  • ป้ายกำกับควรเป็นไปตามรูปแบบที่สอดคล้องกันเพื่อเพิ่มความสามารถในการคาดการณ์และเรียกคืนได้สูงสุด

การดำเนินงาน

  • ลดภาระการรับรู้ด้วยการใช้ตัวย่อที่รู้จักกันดี (เช่น msg = message, lbl = label, btn = button, ... )
  • เครื่องมือนำเสนอตัวแปร / ป้ายกำกับในรายการตามตัวอักษรดังนั้นการค้นหาของมนุษย์จึงดีที่สุดเมื่อกลุ่มป้ายผนึกที่เกี่ยวข้องเข้าด้วยกัน สร้างชื่อตามลำดับชั้นจากทั่วไปไปยังส่วนใหญ่ (เช่น msgFileMissing, msgFileSaved, msgFileDeleted)
  • ภาษาอังกฤษเป็นภาษาที่มีคำสั่งเป็นคำกริยา ภาษาอื่น ๆ ส่วนใหญ่เป็นคำนาม คำนามคำกริยาทำงานได้ดีที่สุดสำหรับการจัดกลุ่มแบบลำดับชั้น
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.