ऐसे पुराने अनुवाद को ढूँढ़ने के लिए जो अब भी अनुवादित दिखता है, बदले हुए स्रोत संदेश को उसकी String Catalog प्रविष्टि तक ट्रेस करें, फिर से बिल्ड करें और शब्दों की तुलना करें। केवल हरा चेकमार्क उस अंतर को दूर नहीं कर सकता जिसे आप पहले ही पहचान चुके हैं।
यह कार्यप्रवाह उस व्यक्ति के लिए है जो Xcode में मौजूदा .xcstrings कैटलॉग वाली Mac ऐप का रखरखाव करता है। काम यह पहचानना है कि अंग्रेज़ी स्रोत में बदलाव के बाद किन अनुवादों पर ध्यान देने की ज़रूरत है, उपयोगी मौजूदा पाठ को बनाए रखना है और चलती हुई ऐप में सुधारे गए संदेश की पुष्टि करनी है।
स्रोत संदेश बदलने पर क्या होना चाहिए?
Apple के दस्तावेज़ के अनुसार, स्रोत स्ट्रिंग बदलने पर उसके अनुवाद समीक्षा के लिए चिह्नित हो जाते हैं। इसके कैटलॉग में अलग-अलग स्थितियाँ हैं: अनुवादित न हुई स्ट्रिंग (New), ध्यान देने की ज़रूरत वाली स्ट्रिंग (Needs Review) और हरे चेकमार्क वाली अनुवादित स्ट्रिंग। अलग Stale स्थिति का अर्थ है कि Xcode को कोड में पहले से अनुवादित स्ट्रिंग नहीं मिली। String Catalogs खोजें
इस समस्या का पता लगाते समय यह शब्दावली मायने रखती है। अगर संदेश अब भी आपकी ऐप में इस्तेमाल हो रहा है, तो उसका पुराना अनुवाद समीक्षा का काम है। केवल कैटलॉग की Stale स्थिति खोजने पर वह छूट सकता है।
स्रोत में बदलाव के व्यवहार के बारे में Apple का दस्तावेज़ एक अपेक्षित नतीजा बताता है, लेकिन यह नहीं बताता कि किसी खास प्रविष्टि में अनुवादित स्थिति क्यों बनी रही। ऐसा होने पर, चेकमार्क को शब्दों के मौजूदा होने का पर्याप्त प्रमाण मानने से पहले, बदले हुए स्रोत और कैटलॉग के संबंध की जाँच करें।
अनुवादों की समीक्षा से पहले सही संदेश ढूँढ़ें
किसी एक बदले हुए संदेश से शुरुआत करें। उसका पिछला अंग्रेज़ी रूप, मौजूदा रूप, अलग होने पर लुकअप कुंजी और कैटलॉग का नाम दर्ज करें। यह छोटा तुलना रिकॉर्ड सुझाया गया जाँच-सहायक है, Xcode की सुविधा नहीं। जब कई प्रविष्टियाँ एक जैसी दिखें, तो इससे आपके पास जाँचने के लिए ठोस जानकारी होगी।
उदाहरण के लिए, मान लें कि डेस्कटॉप बटन पर पहले Open item दिखता था और अब Open selected items दिखता है। समीक्षा का सवाल यह है कि क्या हर अनुवाद अब भी मौजूदा चयन को खोलने की बात कहता है, जिसमें कई आइटम चुने जाने की स्थिति भी शामिल है। केवल Open शब्द का अनुवाद ढूँढ़ने से इस सवाल का जवाब नहीं मिलेगा।
लुकअप कुंजी और दिखाए गए शब्दों को अलग-अलग समझें
Swift में अलग defaultValue के साथ स्पष्ट स्थिर लुकअप कुंजी दी जा सकती है। यह डिफ़ॉल्ट आम तौर पर विकास की भाषा का पाठ होता है और लुकअप विफल होने पर इस्तेमाल होता है। comment अनुवादक को संदर्भ देता है। अगर कोई टेबल निर्दिष्ट न हो, तो लुकअप Localizable का इस्तेमाल करता है; अगर कोई बंडल निर्दिष्ट न हो, तो यह ऐप के मुख्य बंडल में खोजता है। Swift का स्पष्ट-कुंजी स्ट्रिंग इनिशियलाइज़र
इन घटकों को अलग पहचानने के लिए यह उदाहरण संदेश रिकॉर्ड देखें। ये काल्पनिक मान हैं, कैटलॉग फ़ाइल या चलने वाला प्रोग्राम नहीं।
| घटक | बदलाव से पहले | बदलाव के बाद |
|---|---|---|
| लुकअप कुंजी | selection.open |
selection.open |
| अंग्रेज़ी स्रोत मान | Open item |
Open selected items |
| अनुवादक के लिए संदर्भ | Button that opens one item |
Button that opens every item in the current selection |
| कैटलॉग टेबल | Localizable |
Localizable |
यहाँ पहचानकर्ता वही रहता है, जबकि संदेश बदलता है। केवल कुंजी के नामों की तुलना करने वाली जाँच में यह बदलाव छूट जाएगा। स्रोत मान और संदर्भ की भी तुलना करें।
Swift के कुछ स्थानीयकरण कॉल में विकास की भाषा के शब्द ही कुंजी के रूप में इस्तेमाल होते हैं। Apple बताता है कि String.LocalizationValue इस तरीके का समर्थन करता है, जिसमें इंटरपोलेशन भी शामिल है। इस व्यवस्था में शब्द बदलने से लुकअप कुंजी भी बदल सकती है, इसलिए यह मानने के बजाय कि अनुवाद एक ही पहचानकर्ता से जुड़ा रहेगा, पुरानी और नई दोनों प्रविष्टियाँ जाँचें। String.LocalizationValue
फिर से बिल्ड करें और स्रोत का स्थान देखें
Xcode में Product > Build चुनें, फिर Project navigator में संबंधित कैटलॉग चुनें। Apple के दस्तावेज़ के अनुसार, बिल्ड करने पर कैटलॉग कोड में स्थानीयकरण योग्य स्ट्रिंग के बदलावों से अपडेट होते हैं। Editor > Assistant चुनें और स्रोत का स्थान देखने के लिए कुंजी चुनें। स्ट्रिंग कैटलॉग से पाठ का स्थानीयकरण और विविधता
कैटलॉग के स्रोत पाठ की तुलना इच्छित बदलाव से करें। अगर कैटलॉग में अब भी Open item है, तो पहले पता लगाएँ कि नया स्रोत उस प्रविष्टि तक क्यों नहीं पहुँचा। पुराने स्रोत के आधार पर लक्ष्य अनुवाद की समीक्षा करने से मूल समस्या हल नहीं होगी।
स्थानीयकरण कॉल की टेबल और बंडल जाँचें, खासकर जब प्रोजेक्ट में कई कैटलॉग या मॉड्यूल हों। Apple के दस्तावेज़ में कैटलॉग चुनने के लिए टेबल का नाम और मुख्य ऐप बंडल के बाहर की स्ट्रिंग के लिए उपयुक्त बंडल देने का तरीका बताया गया है। यह भी सुझाया गया है कि Xcode को उपयोगकर्ता को दिखने वाला पाठ ढूँढ़ने देने के लिए स्थानीयकरण योग्य API इस्तेमाल करें। ऐप के पाठ को अनुवाद के लिए तैयार करना
हाथ से प्रबंधित प्रविष्टि के लिए, उसका स्रोत सीधे जाँचें और बनाए रखें: Apple के अनुसार, बिल्ड सिंक्रोनाइज़ेशन हाथ से प्रबंधित स्ट्रिंग को अपडेट या हटाता नहीं है। केवल फिर से बिल्ड करने से इसके अपडेट होने की अपेक्षा न करें। String Catalogs खोजें
स्रोत बदलाव निर्णय तालिका से अर्थ की तुलना करें
मौजूदा स्रोत कैटलॉग में आ जाने के बाद, हर लक्ष्य भाषा चुनें और प्रभावित प्रविष्टि देखें। Xcode पाठ को फ़िल्टर करने और स्थिति के अनुसार क्रमबद्ध करने की सुविधा देता है, जिससे समीक्षा का काम ढूँढ़ना आसान हो सकता है। उस खास बदले हुए संदेश को भी देखें, भले ही उसकी स्थिति अब भी अनुवादित हो। String Catalogs खोजें
नीचे दी गई निर्णय-सहायक तालिका संदेश के अर्थ की तुलना से बनाई गई है; यह स्वचालित अनुवाद आकलन नहीं है। इसके अंग्रेज़ी लेबल काल्पनिक उदाहरण हैं। इससे यह तय करने में मदद मिलती है कि स्थानीयकरणकर्ता से क्या जाँचने को कहें, बिना यह माने कि स्रोत में हर बदलाव के लिए लक्ष्य भाषा के शब्द भी बदलने चाहिए।
| स्रोत में बदलाव का उदाहरण | क्या जाँचें | समीक्षा का निर्णय |
|---|---|---|
Open item → Open selected items |
चयन का दायरा और एकवचन या बहुवचन का अर्थ | जाँचें कि अनुवाद अब भी पूरी कार्रवाई बताता है या नहीं। |
Show details → Hide details |
कार्रवाई की दिशा | जाँचें कि अनुवादित कार्रवाई भी उसी के अनुसार बदली है या नहीं। |
Items → Items: |
विराम चिह्न और लेबल का स्थान | शब्द तभी बनाए रखें जब वे संदर्भ में अब भी उपयुक्त हों। |
Open वही रहता है, लेकिन उसका इस्तेमाल बदलता है |
क्या लेबल अब किसी दूसरी कार्रवाई का नाम बताता है | संदर्भ की समीक्षा करें, भले ही स्रोत पाठ वही हो। |
हर संभावित मामले में तीन चीज़ों की तुलना करें: पुराने संदेश का अर्थ, मौजूदा संदेश का अर्थ और अनुवाद अब क्या बताता है। स्रोत में स्पष्ट अंतर होने से समीक्षा के लिए मामला सामने आता है; इससे अपने आप यह साबित नहीं होता कि लक्ष्य भाषा के शब्द बदलने ही चाहिए।
केवल संदर्भ में बदलाव होने पर भी स्पष्ट रूप से जाँच करें। Apple के दस्तावेज़ में टिप्पणियों को अनुवादक के मार्गदर्शन के रूप में बताया गया है, लेकिन उपलब्ध दस्तावेज़ यह साबित नहीं करता कि टिप्पणी में हर बदलाव मौजूदा अनुवादों को अपने आप अमान्य कर देता है। अगर बिना बदला हुआ अंग्रेज़ी लेबल अलग अर्थ देने लगे, तो उसे खुद समीक्षा सूची में शामिल करें। ऐप के पाठ को अनुवाद के लिए तैयार करना
अगर संदेश में संख्या या डिवाइस के अनुसार कोई रूपांतर है, तो केवल मूल पंक्ति देखने के बजाय उन रूपांतरों को खोलकर देखें। Apple के दस्तावेज़ में कैटलॉग के भीतर बहुवचन और डिवाइस के अनुसार रूपांतर बताए गए हैं। अंग्रेज़ी में संख्या के अनुसार 1 item और 2 items की ज़रूरत हो सकती है; हर लक्ष्य भाषा के लागू रूपों की समीक्षा करें, अंग्रेज़ी व्याकरण की यांत्रिक नकल न करें। स्ट्रिंग कैटलॉग से पाठ का स्थानीयकरण और विविधता
उपयोगी अनुवाद हटाए बिना समीक्षा पूरी करें
किसी संदिग्ध अनुवाद को समीक्षा के लिए चिह्नित करने हेतु प्रविष्टि का संदर्भ मेनू इस्तेमाल करें। अगर मौजूदा शब्दों की जाँच हो चुकी है और वे अब भी उपयुक्त हैं, तो Mark as Reviewed चुनें; वरना अनुवाद अपडेट करें। Apple की String Catalog गाइड में ये समीक्षा कार्रवाइयाँ बताई गई हैं। String Catalogs खोजें
बदले हुए स्रोत से तुलना करते समय मौजूदा शब्दों को उपलब्ध रखें। अस्पष्टता घटाने के लिए अनुवाद मिटाने से तुलना के उपयोगी आधार हट जाते हैं। इसी तरह, सिर्फ़ इसलिए प्रविष्टि न हटाएँ कि उसका अनुवाद पुराना है: पहले पता करें कि ऐप अब भी उसकी कुंजी इस्तेमाल करती है या नहीं।
चयन वाले काल्पनिक उदाहरण के लिए, स्थानीयकरणकर्ता को दी जाने वाली उपयोगी जानकारी में कुंजी selection.open, Open item से Open selected items तक का बदलाव और यह स्पष्टीकरण शामिल होगा कि बटन सभी चुने हुए आइटम खोलता है। इससे स्थानीयकरणकर्ता को जाँचने के लिए विशिष्ट कार्रवाई और दायरा मिलता है।
यहाँ एक व्यावहारिक सीमा है: इस कार्यप्रवाह के लिए मिले Apple दस्तावेज़ों में ऐसा पिछली तारीख़ से चलने वाला कमांड नहीं बताया गया है जो अनुवादित प्रविष्टियों के पीछे छूटे हर स्रोत बदलाव का पता लगा सके। अगर पहले के शब्द उपलब्ध नहीं हैं, तो मौजूदा स्रोत की मौजूदा अनुवाद से समीक्षा कर सकते हैं, लेकिन यह तय नहीं कर सकते कि अंतर ठीक कब शुरू हुआ। जब पहले और बाद के रूप की तुलना ज़रूरी हो, तो प्रोजेक्ट का उपलब्ध पुराना संशोधन या सहेजी हुई स्रोत प्रति इस्तेमाल करें।
Mac ऐप में सुधारे गए संदेश की पुष्टि करें
संपादन के बाद वास्तविक इंटरफ़ेस जाँचें। Product > Scheme > Edit Scheme चुनें, Run चुनें, Options खोलें और App Language के अंतर्गत लक्ष्य भाषा चुनें। डायलॉग बंद करें, Mac रन डेस्टिनेशन चुनें और ऐप चलाएँ। Apple के दस्तावेज़ में स्कीम के ज़रिए स्थानीयकरण की यह जाँच बताई गई है। ऐप चलाते समय स्थानीयकरणों की जाँच
उस सटीक कंट्रोल पर वापस जाएँ जिसने जाँच शुरू की थी। Open selected items के लिए एक आइटम और कई आइटम चुनकर आज़माएँ। देखें कि क्या लेबल दोनों स्थितियों में कार्रवाई बताता है और क्या दिखने वाले शब्द आपके संपादित कैटलॉग प्रविष्टि से मेल खाते हैं। इस चरण पर कोई अंतर मिले, तो लुकअप कुंजी, टेबल, बंडल या लागू रूपांतर पर फिर से ध्यान दें।
हर प्रभावित भाषा के लिए स्पष्ट नतीजा दर्ज करके काम पूरा करें: मौजूदा शब्द अब भी उपयुक्त हैं, अनुवाद अपडेट किया गया है या समीक्षा अभी बाकी है। इससे बदले हुए संदेश और इंटरफ़ेस में उसके व्यवहार, दोनों की जाँच पूरी होती है और कैटलॉग की स्थिति उस निर्णय का आधार देती है।