मैं उपयोगकर्ता इंटरफ़ेस अनुवाद कैसे तैनात कर सकता हूं?


12

मेरे द्वारा "उपयोगकर्ता इंटरफ़ेस अनुवाद" / व्यवस्थापक / कॉन्फ़िगरेशन / क्षेत्रीय / अनुवाद में किए गए स्ट्रिंग्स "कॉन्फ़िगरेशन प्रबंधन" / व्यवस्थापक / कॉन्फ़िगरेशन / विकास / कॉन्फ़िगरेशन मेरे लिए निर्यात करने योग्य नहीं हैं। क्या मैं कुछ भूल रहा हूँ?

मैं इस प्रक्रिया को hook_update_Nया के साथ स्वचालित करना चाहूंगा drush cim -y

Drupal 8 में "यूजर इंटरफेस ट्रांसलेशन" को स्वचालित रूप से तैनात करने का एक उचित तरीका क्या है?

  1. क्या मुझे इसमें करना चाहिए hook_update_N()?
  2. क्या मुझे mytranslations.poभाषा फ़ोल्डर में कुछ कस्टम फ़ाइल बनानी चाहिए ?

मैं देख रहा हूं locale_translate_batch_import_files()कि इसका इस्तेमाल किया जा सकता है।


आपने आखिर में क्या किया?
लड़का बुकेमा

@RelaXNow, मैंने अभी तक एक समाधान लागू नहीं किया है। उपयोगकर्ता इंटरफ़ेस अनुवाद का AFAICS आयात / निर्यात अभी तक स्वचालित नहीं है। मैंने एक के साथ जाने की योजना बनाई hook_update_N। @ बरदीर के सुझाव पर एक नजर।
दूधोवस्की

क्या आप नए Drupal Console और इसके कमांड के बारे में जानते हैं translation:sync? दुर्भाग्य से मुझे इस कमांड के बारे में कोई विस्तृत जानकारी नहीं मिली है, लेकिन शायद यह वही है जो आप खोज रहे हैं।
फिलिप माइकल

1
मैंने हमें इसके लिए एक मॉड्यूल रोल किया: drupal.org/project/customtranslations मजा आया।
geek-merlin

हमारे मामले में हमने पोटेक्स ( github.com/kgaut/drupal-potx ) के साथ एक परीक्षण किया जो केवल ड्रश के साथ चल रहा है। इस "आसानी से" को प्राप्त करने के लिए हमने एक .sh फ़ाइल किया जो प्रत्येक मॉड्यूल और प्रत्येक भाषा के लिए मॉड्यूल / कस्टम / अनुवाद में अनुवाद फ़ाइल डालने के लिए ड्रश कमांड को निष्पादित कर रहा है। फिर उन फ़ाइल को प्रोजेक्ट के गिटलैब रिपॉजिटरी में जोड़ दिया जाता है और एक तैनाती के दौरान उत्पादन में आसानी से आयात किया जा सकता है ...
प्रोमो

जवाबों:


6

यह आपको खुद करना होगा। @rpayanm ने उत्तर दिया कि आप इसे मैन्युअल रूप से कहां कर सकते हैं, आपको वहां कोड को देखना होगा, और उदाहरण के लिए ड्रश कमांड को लागू करना जो आपको इसे फिर से निर्यात और आयात करने की अनुमति देता है। फिर स्वचालित रूप से आसान बनाना, निर्यात करना, इसे अन्य सर्वर पर सिंक करना और फिर से आयात करना।

एक परियोजना की तरह लगता है जो उस के साथ मौजूद है: ड्रश लैंग्वेज कमांड

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


3
drupal.org/project/drush_language का अब D8 (dev) संस्करण है।
ह्यूगो

1
आप उन प्रपत्रों की जांच कर सकते हैं, जिन /admin/config/regional/translate/importपर से अनुवाद आयात होते हैं core/modules/locale/src/Form/ImportForm.php
rpayanm

drupal.org/project/drush_language समस्या का समाधान करता है!
दूधोव्स्की

4

कस्टम अनुवाद जोड़ने के लिए सहायक कार्य:

/**
 * Helper to manually add a single translation string.
 *
 * @param string $source_string
 *   Source string.
 * @param string $langcode
 *   The langcode.
 * @param string $translated_string
 *   Translated string.
 */
function MYMODULE_add_translation($source_string, $langcode, $translated_string) {
  // Find existing source string.
  $storage = \Drupal::service('locale.storage');
  $string = $storage->findString(['source' => $source_string]);
  if (is_null($string)) {
    $string = new SourceString();
    $string->setString($source_string);
    $string->setStorage($storage);
    $string->save();
  }
  // Create translation. If one already exists, it will be replaced.
  $translation = $storage->createTranslation([
    'lid' => $string->lid,
    'language' => $langcode,
    'translation' => $translated_string,
  ]);
  $translation->save();
}

अपडेट हुक में उपयोग:

/**
 * Add translations.
 */
function MYMODULE_update_8002() {
  MYMODULE_add_translation('Adjust', 'de', 'Anpassen');
}

4

आप अपनी साइट A (व्यवस्थापक / config / Regional / Translation / निर्यात) द्वारा उपयोग किए गए अनुवादित स्ट्रिंग्स को निर्यात कर सकते हैं और फिर उन्हें दूसरी साइट पर आयात कर सकते हैं (admin / config / Regional / Translate / import)।


1
धन्यवाद। मैं यह जानता हूँ। लेकिन यह एक स्वचालित तैनाती नहीं है। मैं इस प्रक्रिया को hook_update_Nया के साथ स्वचालित करना चाहूंगा drush cim -y। मैं इसे विवरण में जोड़ूंगा।
दूधोव्स्की

1

ऐसा लगता है कि ड्रश लोकेल सिंक से कमांड चलाने के लिए स्क्रिप्ट लिखकर ऐसा करना भी संभव होना चाहिए , हालांकि मैंने खुद उस मॉड्यूल को आजमाया नहीं है।


2
कृपया इसके लिए टिप्पणियों का उपयोग करें, यह वास्तव में जवाब नहीं है ...
मिक्सर 23

1
मुझे यकीन नहीं था कि यह सही था या नहीं, इसलिए मैंने सोचा कि मुझे इसे एक उत्तर के रूप में पोस्ट करना चाहिए और अन्य लोगों को इसे ऊपर या नीचे वोट करने देना चाहिए। अगर आपको गलत लगता है तो कृपया वोट करें।
bdsl

1

के रूप में aexl प्रश्न पर टिप्पणी पर उल्लेख किया है, तो आप उपयोग कर सकते हैं कस्टम अनुवाद मॉड्यूल। इसके साथ आपको बस drush locale-updateअपनी तैनाती स्क्रिप्ट में शामिल करने की आवश्यकता है ।

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.