2012-12-13 11 views
5

इसलिए मैंने उपयोग आधार अंतर्राष्ट्रीयकरण का उपयोग कर एक्सकोड में एक स्टोरीबोर्ड स्थानीयकृत किया है।एक्सकोड स्थानीयकरण अद्यतन

मैं अंदर गया और स्ट्रिंग फ़ाइलों में सभी तारों का अनुवाद किया। वाह। वह हमेशा के लिए लिया।

अब मैंने अपने स्टोरीबोर्ड की मूल फ़ाइल में एक नया तत्व जोड़ा है। इसमें एक लेबल है, जिसमें एक स्ट्रिंग है जिसे मुझे अंतर्राष्ट्रीयकरण की आवश्यकता है। मैंने इसे सहेजा, इसे बनाया, इत्यादि। लेकिन यह नया तत्व मेरी सुंदर तार फ़ाइलों में कहीं भी नहीं पाया गया है।

कृपया मुझे यह न बताएँ कि मुझे अब अपने सभी तत्वों को मैन्युअल रूप से जोड़ना है?

उत्तर

0

Xcode release notes का कहना है:

अपने यूजर इंटरफेस दस्तावेजों से नई सामग्री के साथ अपने तार फाइलों को फिर से समकालित करने के लिए, ibtool कमान की --generate-डंक-फ़ाइल विकल्प का उपयोग नए तार फ़ाइलों का उत्पादन करने के लिए। फिर, अपने मौजूदा स्थानीय तारों में नई फ़ाइलों को मैन्युअल रूप से मर्ज करें।

यह बहुत लंगड़ा है, लेकिन वहां आप जाते हैं। आप अंतर को हल करने में मदद के लिए FileMerge जैसे कुछ का उपयोग कर सकते हैं। (हमारे पास स्ट्रिंग्स फ़ाइलों में पढ़ने वाली स्क्रिप्ट्स का एक सेट है और उन्हें इस तरह विलय करता है; ऐसी चीज लिखना बहुत मुश्किल नहीं है।)

+1

कि के रूप में यह हो जाता है के बारे में के रूप में लंगड़ा है। कुछ गंभीर कस्टम सॉफ्टवेयर के लिए समय ...... मुझे कुछ दिनों देना - यह है कि सुंदर ढंग से करने के लिए मुश्किल नहीं हो सकता है। – mschultz

1

मुझे पता चला है कि सभी तारों का ट्रैक रखना आसान है अलग स्प्रेडशीट, और फिर स्वचालित रूप से वहां से प्रत्येक भाषा के लिए .strings फ़ाइलों को उत्पन्न करें।

आपको अभी भी 2 स्थानों (एक्सकोड और स्प्रेडशीट में) में अनुवाद कुंजी का ट्रैक रखना होगा, लेकिन कम से कम आपको अपनी सभी Localizable.strings फ़ाइलों को संपादित या विलय करने की आवश्यकता नहीं है जब भी आप चाहें कुछ तार जोड़ें।

VBA मैक्रो यहाँ के साथ देखें उदाहरण एक्सेल स्प्रेडशीट: http://members.home.nl/bas.de.reuver/files/multilanguage.zip

+0

हां, सहमत हुए। यह हम जो भी करते हैं उसका हिस्सा है। –

0

मैं एक लंगड़ा समाधान नहीं मिला है, लेकिन यह एक Xcode रिलीज नोट्स में पाया की तुलना में कम लंगड़ा है, स्थानीयकरण भाषाओं को बंद करें, डिस्क से फ़ाइल को हटाएं और अब फिर से टिकटें। यह .strings फ़ाइलों को फिर से बनाएगा।

+0

मैं यह भी करता हूं। नोट हालांकि, यह अभी भी डेवलपर को पिछली फ़ाइल और वर्तमान फ़ाइल को मैन्युअल रूप से मर्ज करने की आवश्यकता है। –

+0

हाँ, पर यह आसानी से मर्ज सॉफ्टवेयर और Git संशोधन के साथ किया जा सकता है। अभी भी लंगड़ा –

2

आईबी के इंस्पेक्टर (कक्षा अनुभाग के तहत) में ऑब्जेक्ट आईडी मैन्युअल रूप से पाएं। मैन्युअल रूप से उन नए तत्वों को लिखें।

+0

अधिक चतुर एक है, कि अपनी परियोजना फिर आप अपनी पुरानी भाषाओं फ़ाइल में पेस्ट करने के लिए नए तत्व नकल के लिए आवश्यक नहीं नई स्थानीय भाषा बनाने के लिए, उसके बाद, इसे हटा दें। – MatthewLuiHK

1

जबकि Xcode 6 और के लिए इंतज़ार कर अपनी नई localization features (कि मुझे आशा है कि पिछवाड़े में इस l10n अद्यतन दर्द से निपटने जाएगा), हम सैद्धांतिक रूप से इन चरणों (कभी नहीं की कोशिश की)

  • नया तार उत्पन्न को स्वचालित कर सकता है find/xargs genstrings and ibtool
  • diff, patch प्रत्येक फाइल के दोनों संस्करण
  • हटाएँ अनावश्यक फ़ाइलों

यह gist script (उच्चारण करने में आसान नहीं है :) उपयोगी भी लगता है (फिर भी परीक्षण नहीं किया गया)

2

मैंने इस तरह की समस्या हल की।

  1. अपने स्थानीयकरण उपयोगिता पैनल के चेकबॉक्स को एक-एक करके अनचेक करें।

  2. Xcode पूछना होगा, आप Main.storyboard के लिए अंग्रेजी (भाषा) स्थानीयकरण को दूर करना चाहते हैं?

  3. संवाद में एक और चेकबॉक्स वहाँ है, यह

  4. फिर निकालें क्लिक करें जांच नहीं करते।

  5. फिर अपनी कहानी बोर्ड प्रत्येक भाषा का चयन करें, और पुनः जाँच

  6. Xcode फ़ाइल कहेंगे पहले से ही मौजूद

  7. चुने गए फ़ाइल बदलें

  8. Xcode स्वचालित रूप से तार फ़ाइलें आपके अद्यतन यूआई से फिर से उत्पन्न और अपनी फाइल को प्रतिस्थापित करें।

शुभकामनाएं।

संबंधित मुद्दे