Jump to content

TDF विकि/बहुभाषी

From The Document Foundation Wiki
This page is a translated version of the page TDF Wiki/Multilingual and the translation is 100% complete.

यो पृष्ठ TDF विकिमा अवस्थित बहुभाषी विकि सामग्रीसँग सम्बन्धित छ।

जानकारी
नयाँ निर्माण गरिएका पृष्ठहरूका निम्ति OrigLang प्रकारको अनुवाद प्रयोग नगर्नुहोला। हामी हाल मिडियाविकी ट्रान्सलेट एक्सटेन्सनमा स्थानान्तरण भइरहेका छौं।

पृष्ठभूमि

यस पृष्ठमा विकी सम्पादकहरूका निम्ति केही महत्त्वपूर्ण संकेत तथा सुझावहरू समावेश गरिएका छन्। विकीमा अनुदित वा स्थानीयकृत (localized) सामग्री प्रविष्ट गर्नुअघि कृपया यो पृष्ठ अध्ययन गर्नुहोला।

अनुवाद सम्बन्धी समस्याहरू तथा अपूर्ण अनुवादहरू

विकिका अधिकांश अनुवादयोग्य पृष्ठहरूमा हाल ट्रान्सलेट एक्सटेन्सन (Translate extension) प्रयोग भइरहेको छ, जसले अद्यावधिक नभएका/पुराना अनुवादयुक्त अनुच्छेदहरूलाई स्वतः हाइलाइट गर्दछ। त्यस्ता पृष्ठहरूमा, अपूर्ण अनुवादहरू मेट्नुको सट्टा तिनलाई यथावत् राख्नु उपयुक्त मानिन्छ। अरूका कार्यहरूबारे प्रश्न वा जिज्ञासा भएमा, उनीहरूको प्रयोगकर्ता पृष्ठ (user page) मा उपलब्ध "यस प्रयोगकर्तालाई इमेल पठाउनुहोस्" ("Email this user") सुविधामार्फत सहकर्मी अनुवादकहरूसँग सम्पर्क स्थापित गर्न सक्नुहुन्छ। कुनै अनुरोध, सुझाव वा परिमार्जनसम्बन्धी अवधारणाका निम्ति व्यापक प्रतिक्रिया आवश्यक परेमा, कृपया स्थानीयकरण पत्राचार सूचीमा आबद्ध हुनुहोस्। स्थानीयकरण तथा मातृभाषा टोलीका तर्फबाट हार्दिक धन्यवाद!

स्थानीय केन्द्रित सामग्री

पृष्ठहरू केवल तिनीहरूका स्थानीय भाषामा मात्र तयार पारिन्छन् र अनुवाद गरिँदैनन्। ती ठूला अक्षर (upper case) मा भाषा कोडद्वारा नामकरण गरिएको पृष्ठका उप-पृष्ठहरू (subpages) हुन्।

उदाहरणहरू:


 https://wiki.documentfoundation.org/DE/Team
 https://wiki.documentfoundation.org/DE/Veranstaltungen
 ...
 https://wiki.documentfoundation.org/FR/Documentation/Publications
 

विश्वव्यापी केन्द्रित सामग्री

पृष्ठहरू अंग्रेजी भाषामा तयार गरी विभिन्न भाषाहरूमा अनुदित गरिन्छन्। अनुदित पृष्ठहरू तिनका भाषा कोड अनुसार नामकरण गरिएका उप-पृष्ठ हुन्। अनुवाद प्रक्रिया ट्रान्सलेट एक्सटेन्सन मार्फत सञ्चालन हुन्छ।

कुनै पृष्ठलाई अनुवादयोग्य बनाउन निम्न चरणहरू पालना गर्नुहोस्:

  1. अनुवाद गर्नुपर्ने सामग्रीलाई <translate></translate> ब्लकभित्र समावेश गर्नुहोस्
  2. स्थानीय अनुवादयोग्य पृष्ठहरूलाई लिङ्क गर्दा Special:MyLanguage उपसर्ग (prefix) प्रयोग गर्नुहोस्
  3. भाषा मेनु ब्लक <languages/> प्रविष्ट गर्नुहोस्
  4. पृष्ठ सुरक्षित (save) गरेपछि, शीर्ष भागमा रहेको "Mark this page for translation" (अनुवादका निम्ति यो पृष्ठ चिह्नित गर्नुहोस्) लिङ्कमा क्लिक गर्नुहोस्
  5. सम्पूर्ण विवरण सही भए/नभएको जाँच गर्नुहोस् र तल्लो भागमा रहेको "Mark this version for translation" (अनुवादका निम्ति यो संस्करण चिह्नित गर्नुहोस्) बटनमा क्लिक गर्नुहोस्

पृष्ठलाई अनुवादका निम्ति चिह्नित गरेपछि, ट्रान्सलेट एक्सटेन्सनले अनुवादयोग्य वाक्यांश/स्ट्रिङहरू जनाउन स्वतः <!--T:1--> ढाँचाका मार्करहरू समावेश गर्नेछ। स्वतः पृथक स्ट्रिङ बन्नका निम्ति, पाठको ब्लक (block of text) खाली पङ्क्तिहरूले घेरिएको हुनुपर्छ। स्ट्रिङहरूलाई अनिवार्य रूपमा पृथक गर्नका निम्ति तपाईं थप <translate></translate> ब्लकहरू थप्न सक्नुहुन्छ। विशेष गरी बुलेट वा सङ्ख्याङ्कन गरिएका सूचीहरूमा विशेष ध्यान दिनुहोला।

यदि तपाईंले स्रोत पृष्ठमा सामग्री थप्नुभयो वा परिमार्जन गर्नुभयो भने, पृष्ठको माथिल्लो भागमा यो सन्देश देखिनेछ: This page has changes since it was last marked for translation। प्रारम्भिक प्राथमिकीकरण जस्तै गरी अनुवाद प्रणालीलाई अद्यावधिक गर्न "marked for translation" लिङ्कमा क्लिक गर्नुहोस्।

सुझाव तथा व्यावहारिक उपायहरू

आदर्श अवस्थामा, अनुवादकहरूका निम्ति न्यूनतम विकि मार्कअप (wiki markup) मात्र देख्नुपर्छ। अनुवादयोग्य स्ट्रिङ/वाक्यांशभित्र तालिका वा ढाँचा/टेम्प्लेटको मार्कअप हुनु अनुवादकका निम्ति जटिल तथा भ्रमपूर्ण हुन्छ। त्यस्ता मार्कअपहरूलाई <translate></translate> ब्लकभन्दा बाहिरै राख्ने प्रयास गर्नुहोस्।

पृष्ठको शीर्षक पूर्वनिर्धारित रूपमा अनुवादयोग्य बनाइएको हुन्छ, तर पृष्ठलाई अनुवादका निम्ति चिह्नित गर्दा "Allow translation of page title" चेकबक्समार्फत यसलाई नियन्त्रण गर्न सक्नुहुन्छ। अनुवादयोग्य स्ट्रिङहरूको सूचीमा पृष्ठको शीर्षक पहिलो स्थानमा रहन्छ। अनुवाद प्रणाली तथा इन्टरफेसमा, उक्त स्ट्रिङको नाम "Translations:Faq/General/127/Page display title/ru" जस्तो देखिन्छ भने अन्य स्ट्रिङका नामहरूमा "Translations:Faq/General/127/4/ru" मा रहेको "4" जस्ता सङ्ख्यात्मक पहिचानकर्ताहरू (numeric identifiers) समावेश हुन्छन्।

कहिलेकाहीँ पृष्ठलाई पाथ (path) मा अवस्थित नामभन्दा भिन्न प्रदर्शन शीर्षक प्रदान गर्नुपर्ने आवश्यकता हुनसक्छ। स्मरण रहोस्, यो प्रक्रिया सिफारिस गरिँदैन र यसबाट बच्नु नै उपयुक्त हुन्छ। यस्ता अवस्थामा, रिनेम टेम्प्लेट (Rename template) यस प्रकार प्रयोग गर्नुहोस्: {{Rename|My new name}}। यस टेम्प्लेटले अनुदित पृष्ठहरूमा शीर्षकका सम्बन्धमा कुनै त्रुटि नरहने कुरा सुनिश्चित गर्दछ।

अनुवाद एकाइ (translation unit) को नामको छेउमा रहेको अधोमुख (तल फर्केको) त्रिभुजमा क्लिक गरी Show in wiki editor चयन गरेर, स्थितिलाई अद्यावधिक नभएको (outdated) नै राखी अनुवादको आंशिक अद्यावधिक (partial update) गर्न सक्नुहुन्छ। यसले तपाईंलाई पृथक सम्पादन पृष्ठमा लैजानेछ जहाँ पाठको प्रारम्भमा रहेको !!FUZZY!! विशेष शब्दलाई यथावत् राख्दै आफ्ना संशोधनहरू सुरक्षित गर्न सक्नुहुन्छ।

कहिलेकाहीँ <!--T:1--> मार्करहरू बिनाको मूल अंग्रेजी विकि स्रोतमा पहुँच आवश्यक पर्न सक्छ। पृष्ठ पाथको अन्त्यमा /en समावेश गरी स्रोत पाठ सम्पादन गरेर यो प्राप्त गर्न सकिन्छ। यसले तपाईंलाई नयाँ पृष्ठमा (जस्तै रिलिज नोटहरू) पृष्ठको मूल संरचना प्रतिलिपि गर्ने सुविधा प्रदान गर्दछ।

अनेकौँ अनुवाद ब्लकहरू भएको पृष्ठमा कार्य गर्दा, कहिलेकाहीँ अनुवाद ट्यागहरू (translate tags) सुरु वा बन्द गर्ने क्रममा त्रुटि हुन सक्छ। यस्तो परिस्थितिमा, पृष्ठको पूर्वावलोकनले विषयवस्तुका साथ सम्पूर्ण ट्रान्सलेट मार्कअप प्रदर्शन गर्नेछ। यद्यपि, Save changes मा क्लिक गर्दा अत्यन्तै उपयोगी परिणाम प्राप्त हुन्छ: पृष्ठ सुरक्षित हुनुको सट्टा, यसले स्रोत पाठको संक्षिप्त दृश्य (reduced view) देखाउँछ, जसले तपाईंलाई त्रुटि पत्ता लगाउन सहज बनाउँछ।

यदि तपाईंसँग केवल एकल सङ्ख्या समावेश भएका ब्लकहरू छन् भने, ट्रान्सलेट ब्लकको सट्टा म्याजिक वर्ड {{formatnum:1234}} प्रयोग गर्न सक्नुहुन्छ। आवश्यकता अनुसार सङ्ख्या स्वतः गैर-पश्चिमी शैलीमा ढाँचाबद्ध हुनेछ। पाठकहरूमा द्विविधा नहोस् भन्नका निम्ति हजार विभाजक (thousand separators) हटाउन पूर्ण सङ्ख्याहरूका लागि NOSEP प्यारामिटर प्रयोग गर्नु उपयुक्त हुन्छ। दशमलव सङ्ख्याहरूका निम्ति NOSEP प्रयोग नगर्नु नै उत्तम हुन्छ, अन्यथा यसले दशमलव विभाजकको स्थानीयकरण प्रक्रियालाई निष्क्रिय बनाइदिन्छ।

तल अनुवादका निम्ति तयार पारिएको पृष्ठको दृष्टान्त प्रस्तुत गरिएको छ। तालिकामा बुलेटयुक्त सूची र सामग्रीहरूको पृथकीकरणलाई ध्यानपूर्वक अवलोकन गर्नुहोस्।

 {{TopMenu}}
 {{Menu}}
 {{Menu.Documentation}}
 <languages/>

 <translate>
 == Hello World ==

 * We must take the world as we find it
 * When we are gone, let the world be flooded
 * The world is as fools wish it to be
 * It's a small world!
 </translate>
 <translate>
 * Crows are black the world over
 * He slipped once and all the world knew about it
 * The world is like a market, the one does business and the other does none
 * Huge though the world is, I always miss when I hit at it
 </translate>


 {| class="wikitable"
 |-
 | <translate>Cell content</translate>
 |-
 | {{sometemplate|<translate>Text content for a template</translate>}}
 |-
 | <bdi>{{formatnum:-1.10714871779409}}</bdi>
 |-
 | {{formatnum:110714871779409|NOSEP}}
 |}

 [[Special:MyLanguage/Development/Create_a_Hello_World_LibreOffice_extension|<translate>Tutorial on creating a Hello World extension</translate>]]

 [[Category:Documentation]]
 

तालिकाको सामग्री अनुवादका निम्ति तयार पार्न झन्झटिलो हुनसक्ने हुनाले, एउटा सहायक स्क्रिप्ट (helper script) तयार पारिएको छ। विकी लेखलाई स्थानीय टेक्स्ट फाइलमा प्रतिलिपि गरी उक्त फाइलको नाम स्क्रिप्टको आर्गुमेन्ट (argument) का रूपमा प्रविष्ट गरेर यसको प्रयोग गर्नुहोस्। फाइलका सामग्रीहरू सोही स्थानमा पुनःलेखन (rewrite) हुनेछन्। यदि तालिकाको कोठा (table cell) मा पूर्णाङ्क (integer), फ्लोटिङ पोइन्ट (floating point) वा जटिल सङ्ख्या (complex number) मात्र अवस्थित छन् भने formatnum म्याजिक वर्ड स्वतः लागू हुनेछ। यो स्क्रिप्ट wikitextparser, regex र wcwidth प्याकेजहरूमा निर्भर रहन्छ। स्क्रिप्ट अवलोकन गर्न Expand मा क्लिक गर्नुहोस्।


#!/usr/bin/env python3
#
# uses the library https://github.com/5j9/wikitextparser
import sys
import wikitextparser as wtp

def is_float_or_complex(value):
    try:
        float(value)
        return True
    except:
        return False
    try:
        complex(value)
        return True
    except:
        return False

def wrap_translate(string):
    if string.endswith(('}}', '</translate>')) or (len(string) < 2 and not string.isnumeric()):
        return string
    elif string.isnumeric() or is_float_or_complex(string):
        if string.isnumeric():
            format_end = '|NOSEP}}'
        else:
            format_end = '}}'
        # Add bdi element so minuses will stay in place with RTL languages
        if string[0] == '-':
            return ' <bdi>{{formatnum:' + string + format_end + '</bdi> '
        else:
            return ' {{formatnum:' + string + format_end + ' '
    else:
        return ' <translate>' + string + '</translate> '

with open(sys.argv[1]) as f:
    doc = f.read()

p = wtp.parse(doc)
tables = p.get_tables()

for t in tables:
    if t.caption:
        caption = t.caption.strip()
        if len(caption) > 0:
            t.caption = wrap_translate(caption)
    for row in t.cells():
        for cell in row:
            c = cell.value.strip()
            if len(c) > 0:
                cell.value = wrap_translate(c)

with open(sys.argv[1], 'w') as f:
    f.write(p.string)

पुराना अनुदित सामग्रीहरूलाई वर्तमान प्रणालीमा स्थानान्तरण

विगतमा, TDF विकिले OrigLang र Lang नामक ढाँचाहरू प्रयोग गर्ने अनुवाद प्रक्रिया अवलम्बन गरेको थियो। उक्त ढाँचाहरूले स्रोत पृष्ठलाई अनुदित पृष्ठहरूसँग जोड्ने मेनु प्रदर्शन गर्दथे। तपाईं Lang ढाँचा प्रयोग गरिएका सम्पूर्ण अनुदित सामग्रीहरू यस सूचीमा प्राप्त गर्न सक्नुहुन्छ: Special:WhatLinksHere/Template:Lang। त्यसै गरी, तपाईं OrigLang ढाँचा समावेश गरिएका पृष्ठहरूको सूची अवलोकन गर्न सक्नुहुन्छ।

ट्रान्सलेट एक्सटेन्सनमा एउटा माइग्रेसन उपकरण (migration tool) उपलब्ध छ, जसले पूर्व-अनुदित सामग्रीहरूलाई नयाँ प्रणालीमा स्थानान्तरण गर्न सहयोग पुर्‍याउँछ। यदि स्रोत र अनुवाद ब्लकहरू (translation blocks) पूर्ण रूपमा मेल खान्छन् भने, स्थानान्तरण प्रक्रिया अत्यन्त सहज हुनेछ। अन्यथा तपाईंले इनपुट बाकसहरू (input boxes) बीच स्ट्रिङहरू (strings) कट र पेस्ट गर्नुपर्ने हुन्छ।

स्थानान्तरण प्रक्रिया निम्न अनुसार सम्पन्न हुन्छ:

  1. पृष्ठलाई अनुवादका निम्ति चिह्नित गरेपछि, केही मिनेट पर्खिनुहोस्, ताकि सर्भरले उक्त पृष्ठको प्रक्रिया सम्पन्न गर्न सकोस्
  2. Special:PageMigration पृष्ठमा प्रवेश गर्नुहोस्
  3. इनपुट बाकसमा, तपाईंले स्थानान्तरण गर्न चाहनुभएको पृष्ठको भाषा पाथ (language path) प्रविष्ट गर्नुहोस्, जस्तै: कुनै काल्पनिक जर्मन अनुवादका निम्ति Mypath/Mypage/de
  4. इम्पोर्ट बटनमा क्लिक गर्नुहोस्
  5. पुराना अनुवादहरू समावेश भएका इनपुट बाकसका सामग्रीहरू परिमार्जन/सफा गर्नुहोस् (उदाहरणका निम्ति, निरर्थक मेनु ढाँचाहरू हटाउनुहोस्)
  6. अनुवादहरू अवस्थित कोलम/स्तम्भमा, अन्त्यमा खाली वा अतिरिक्त इनपुट बाकसहरू छाड्न मिल्दैन, त्यसैले तिनको छेउमा रहेको फोहोरको बाकस (trashcan) आइकोनमा क्लिक गरी तिनलाई हटाउनुहोस्
  7. सम्पूर्ण विवरण परिमार्जन गरी क्रमबद्ध गरेपछि, सेभ (Save) बटनमा क्लिक गर्नुहोस्

स्मरण रहोस्, अनुदित पृष्ठको पुरानो संस्करण यसको "इतिहास हेर्नुहोस्" (View history) लिङ्क प्रयोग गरी पुरानो संशोधन/पुनरावलोकन (revision) मा क्लिक गरेर जुनसुकै समयमा पनि अवलोकन गर्न सक्नुहुन्छ।

यदि तपाईं कुनै पुरानो संशोधनको मूल स्रोत (source text) अवलोकन गर्न चाहनुहुन्छ भने, इतिहासबाट उक्त लिङ्क प्रतिलिपि (copy) गरी त्यसको अन्त्यमा यो खण्ड समावेश गरेर लिङ्क खोल्नुहोस्: &action=edit

कहिलेकाहीँ माइग्रेसन उपकरण (migration tool) प्रयोग गर्नु व्यावहारिक हुँदैन। ट्रान्सलेट तत्वहरू (translate elements) भन्दा बाहिर विकि मार्कअप (wiki markup) छाड्दा उपकरण भ्रमित हुने सम्भावना रहन्छ। यस्ता अवस्थाहरूमा, अनुवाद स्मृति (translation memory) द्वारा प्रस्तुत गरिएका सुझावहरू बढी उपयोगी सिद्ध हुनसक्छन्।

साइडबारका सन्देशहरू

”Get Involved” र ”Support LibreOffice!” सन्देशहरू अनुवाद गर्नका निम्ति, तपाईंले अनुवादहरू विकि प्रशासकहरू मध्ये कुनै एकलाई प्रेषित गर्नुपर्ने हुन्छ। अन्य सन्देशहरू प्रणाली सन्देशहरू हुन् जुन सामान्यतया अपस्ट्रिम मिडियाविकीमा अनुदित हुन्छन्। यद्यपि, हामीसँग फुटरमा प्रदर्शित हुने कस्टम प्रतिलिपि अधिकार सूचना अवस्थित छ, त्यसैले तपाईं "copyright" शब्दद्वारा छनोट/फिल्टर गरी सन्देश पृष्ठको शीर्षकमा क्लिक गरेर ती प्रविष्टिहरूलाई आफ्नो भाषामा अनुवाद गर्न सक्नुहुन्छ।

अतिरिक्त साइडबार तत्वहरू (Sidebar elements) को अनुवाद असंरचित तत्व अनुवादका निम्ति ट्रान्सलेट एक्सटेन्सनको सहयोग पृष्ठमा उल्लिखित चरणहरू प्रयोग गरी निर्धारण/सेटअप गरिएको छ। सन्देशहरू अनुवाद गर्नका निम्ति प्रशासकहरूले केवल Special:Translate/wiki-sidebar पृष्ठमा पहुँच राख्नुपर्ने हुन्छ।

”मुख्य पृष्ठ” (Main Page) र ”सहभागी हुनुहोस्” (Get Involved) लिङ्कहरूले Special:MyLanguage उपसर्ग (prefix) को प्रयोग गर्दछन्, जसले गर्दा यदि अनुदित पृष्ठ उपलब्ध छ भने तिनले प्रयोगकर्तालाई स्वतः अनुदित पृष्ठमा प्रेषित/पुनःनिर्देशित गराउँछन्।