Pomoč:Samodejno prevajanje

From Wikimedia Commons, the free media repository
Jump to navigation Jump to search
This page is a translated version of a page Help:Autotranslate and the translation is 27% complete. Changes to the translation template, respectively the source language can be submitted through Help:Autotranslate and have to be approved by a translation administrator.
Outdated translations are marked like this.
Rezultat je običajno videti tako.
Struktura, ki je običajno potrebna za ustvaritev samodejne prevodne predloge

Tu je opisano in bolj natančno pojasnjeno, kako se s predlogo {{Autotranslate}} ustvari samodejna prevodna predloga (glejte dokumentacijo tukaj).

Čemu lokalizirati?

Wikimedijina zbirka je večjezičen projekt. Naš cilj je vsakomur kjer koli na svetu zagotoviti lokaliziran vmesnik.

Kdaj uporabiti Autotranslate

Če želite prevesti samo eno besedo ali frazo, uporabite sporočila MediaWiki ali {{LangSwitch}}. Če želite nekaj bolj kompleksnega, je prava izbira Autotranslate. Za pregled internacionalizacije/lokalzacije glejte Commons:Localization.

Kaj počne Autotranslate?

Autotranslate glede na uporabnikov izbrani jezik vmesnika »prikliče« podstran predloge, določeno s parametrom |base=. To pomeni, da poteka proces v strežniku in je uporabniku vidna vsebina samo ene podpredloge. Uporabnikov izbrani jezik zazna tako, da pogleda {{int:lang}}. To razčleni v en in za vas na podlagi tega prikliče podstran /en, če obstaja.

This means processing takes place at the server and only the contents of one sub-template are visible to the user. It detects the user’s chosen language by looking up {{int:lang}}; for you, this evaluates to en, thus, Autotranslate would call the /en subpage for you, if it exists.

Slabosti

Autotranslate shranjuje različne jezikovne prevode raličnih podstrani predloge. To ima pomembno slabost: podstrani predloge je treba vzdrževati in posodabljati ločeno. Sicer bodo uporabniki v različnih jezikih videli drugačna navodila ali drugačne informacije. To lahko pripelje do težav pri njihovi medsebojni interakciji. Če torej uporabnik spremeni eno različico, mora bodisi posodobiti vse različice ali na vse druge podstrani dodati oznako o zastarelosti. V praksi to pogosto poteka tako, da se posodobi samo podstran /en (v angleščini); koordinacija posodabljanja prevodov ostaja v Zbirki težavna (to ne velja samo za samodejne prevodne predloge ...). Toda zdaj je na voljo rešitev, ki zagotavlja sinhroniziranje predlog: razširitev Translate.

This has one significant drawback: the template-subpages must be maintained separately to stay relevant and up-to-date. Otherwise, users with different languages will see different instructions or different information. This can lead to problems when users interact with each other. Therefore, if users alter one version, they must either update all other versions or put a deprecation-note on all other subpage templates. In practice it often happens that only the /en-subpage (English version) is updated; the coordination of translation updates remains a problem on Commons (this does not just apply to autotranslated templates…).

However, there is a solution now that makes sure that all translations are in sync: The Translate Extension.

Zmogljivost

Kot je razvidno iz diagrama ob besedilu, je vključenih več kot 5 predlog. Autotranslate sam preveri, ali stran obstaja. To opredeli kot »drago funkcijo razčlenjevalnika« Kljub temu je Autotranslate boljši kot deset stikal LangSwitch. Ko vidite kodo {{Autotranslate}}, upoštevajte, da bo preveč zahtevnih funkcij razčlenjevalnika na eni strani ustavilo prikazovanje predlog.

Autotranslate itself checks whether a page exists. This is classified as "expensive parser function". Nevertheless, one Autotranslate is better than 10 LangSwitches. When you see a raw {{Autotranslate}}, beware that too many heavy parser functions on one page will stop rendering templates.

Zaznana zanka predloge!

"Template loop detected:Template:Autotranslate"

Pri uporabi Autotranslate lahko opazite to nezaželeno sporočilo o napaki. Razlog je, da ko ena samodejna prevodna predloga kliče drugo, to povzroči zanko {{Autotranslate}}. Ker uporablja drugo osnovo, v resnici ni težave in je edina težava, ki vam kvari dan, sporočilo o napaki. Rešitev: uporabite {{Autotranslate/clone 1}}, {{Autotranslate/clone 2}}, {{Autotranslate/clone 3}} ali {{Autotranslate/clone 4}}.

Since it uses another base there is no real problem and the error message itself is the only thing that's ruining your day. The solution: use {{Autotranslate/clone 1}}, {{Autotranslate/clone 2}}, {{Autotranslate/clone 3}} or {{Autotranslate/clone 4}}.

Potrebne strani

Glavna predloga

Znana tudi kot »sprednja predloga« (front template). Morala bi biti videti tako.

{{Autotranslate|base=Example|1={{{1|}}}|2={{{2|}}}}}<noinclude>

{{documentation}}
</noinclude>
  • Zelo je majhna.
  • Pri ustvarjanju predlog za uporabniške pogovorne strani je pomembno, da to predlogo subst:ituirate.
  • TKoda <noinclude> preprečuje prikaz druge kode pri uporabi te predloge.
  • Osnovni parameter (base-parameter) je zgolj ime predloge brez imenskega prostora.
  • Nato sledijo številski parametri (dovoljenih jih je do 10). Ti se posredujejo prevodnim podstranem. Posredujejo se samo številski parametri. Seveda pa lahko poimenovani parameter pretvorite v številskega: |1={{{namedParameter|}}}
  • Predloga {{Documentation}} naloži podstran /doc predloge z dokumentacijo in jo obda z vsebnikom, tako da je ozadje videti sivo in je na voljo nekaj povezav (uredi, ogled).
  • Kategorije se običajno vključijo iz dokumentacije. To administratorjem omogoča, da zaščitijo glavno predlogo, izkušeni administratorji pa lahko predlogo še vedno kategorizirajo na podstrani /doc (pri čemer kategorije dodajajo znotraj značke <includeonly>).
  • When creating user talk templates, this is important to allow this template being subst:-ed.
  • The <noinclude> prevents other stuff from being shown when this template is used
  • The base-parameter is just the template’s name without namespace
  • Then, numeric parameters follow (at least 10 are allowed). They will be forwarded to the translation subpages. Only numeric parameters are forwarded. But of course, you can convert a named parameter into a numeric one: |1={{{namedParameter|}}}
  • {{Documentation}} loads the /doc-subpage of the template and wraps a container around this so the background appears grey and there are some links (edit, view)
  • The categories are usually transcluded through the documentation. This allows administrators to protect the main template while allowing experienced users still to categorize the template through the /doc-subpage (where they are added inside a <includeonly>-tag).

Jezikovne podstrani: /en, /de, /fr ...

Videti bodo takole:

{{Example/layout
|1={{{1|}}}
|2={{{2|}}}
|lang=en
|text1=This is an example text.
|text2=or just a phrase
}}<noinclude>
{{translated tag|insert type here - for types see [[Template:Translated tag]]}}
</noinclude>
  • To so podstrani za prevajanje in ne za zapletene operacije.
  • Zapletene transformacije vhodnih parametrov naj potekajo v ločenih predlogah, preden se parametri posredujejo jezikovnim podstranem, torej v glavni predlogi s predobdelovalnimi predlogami.
  • Skrbite za prevajalce in vam bodo hvaležni.
  • Te predloge morajo biti vedno medsebojno sinhronizirane. Sicer bodo ljudje nekaterih jezikov imeli zavajajoče informacije.
  • Predlogi postavitve vedno posredujte vse parametre podstrani.
  • Uporabite lahko tudi trenutno »bližnjico jezika« (ime podstrani naj bo vedno zapisano v kodi, ne uporabljajte čarobne besede {{subst:SUBPAGENAME}}).
  • Na te jezikovne podstrani ne dodajajte v kodo zapisanih povezav. Če si morajo vse jezikovne podstrani deliti določeno povezavo in te ni mogoče izvoziti na podstran /layout, ustvarite novo podstran predloge (npr. Template:Example/link) in uporabite v njej povezavo na ta način: Zgled besedila [[{{Example/link}}|s ponazoritveno povezavo]]. Če želite povezavo spremeniti pozneje, vam ni treba urediti vrste prevodov.
  • Ne poskušajte uporabiti zasilnih besedil, kot npr.: {{{1|fallback text}}} To ne bo delovalo, ker Autotranslate vedno posreduje vse parametre, tudi če so prazni. Morali bi prepisati zgled v {{#if: {{{1|}}}|{{{1}}}|zasilno besedilo}}.
  • Complicated transformations on the input parameters should be done in separate templates before the parameters are passed to the language sub page, thus on the main template using preprocessor-templates
  • Nurse the translators and they will be thankful
  • These templates must be always in sync with each other. Otherwise people using some languages will be misled.
  • Always forward all parameters the subpage receives to the layout template
  • Also pass the current "language-shortcut" (the subpage name, always hardcoded, don't use {{SUBPAGENAME}} but you can use {{subst:SUBPAGENAME}})
  • Don't add hardcoded links to these language-subpages. If all language subpages should share one link and it is not possible to port this to the /layout-subpage, create a new subpage of the template (e.g. Template:Example/link) and use the link this way: Example text [[{{Example/link}}|with an example link]] in it because I don't like it foo bar.. If you have to change the link later, you don't have to edit tons of translations.
  • Don't try to use fallback texts like this: {{{1|fallback text}}} This won't work because Autotranslate always passes all parameters, even if they are empty. You would have to rewrite the example to {{#if: {{{1|}}}|{{{1}}}|fallback text}}

Podstran postavitve: /layout

Tu ste lahko ustvarjalni. Upoštevati morate le nekatera osnovna pravila:

  • Uporabite {{LayoutTemplateArgs}}, da pri kliku jezikovne povezave omogočite prevajanje svoje predloge z Ajaxom na strani. Natančno morate upoštevati navodila {{LayoutTemplateArgs}}. Skript Ajax trenutno neposredno kliče podstrani. To pomeni, da morate imena parametrov nastaviti na številke, saj podstrani predloge sprejemajo samo številke, ali pa morate zagotoviti, da poimenovane parametre sprejemajo tudi vse jezikovne podstrani.
  • Vsako sliko vključite v {{ImageNoteControl}}: {{ImageNoteControl|notes=off|img=[[File:Example.jpg|60px]]}}. Sicer lahko vandali k sliki dodajo neprimerne opombe (kar bi z veseljem storili). Razmislite o zaščiti naloženih datotek, ki ste se jih odločili uporabiti.
  • Tabele so za namene postavitve odsvetovane, saj jih bralniki besedila težko razumejo. Toda včasih jih je težko nadomestiti.
  • Use {{LayoutTemplateArgs}} to allow Ajax-in-page-translation of your template when clicking on a language-link. You must closely follow the instructions of {{LayoutTemplateArgs}}. The Ajax-script currently calls the language-subpages directly. This means you must set the parameter names to numbers because the subpage-template only accept numbers or you must ensure all language-subpages accept also named parameters.
  • Wrap each image in a {{ImageNoteControl}}: {{ImageNoteControl|notes=off|img=[[File:Example.jpg|60px]]}}. Otherwise vandals could add inappropriate image notes (and they like doing so). Consider upload-protecting the files that you choose to use.
  • Tables for layout purposes are deprecated because screen readers have serious difficulties understanding them. But sometimes it’s challenging to replace them.

Tu je zgled:

<div style="border:2px solid grey; width:99%; padding:5px; min-height:70px" class="layouttemplate">
{{LayoutTemplateArgs|template=Example|args=
{{urlencode: 1={{{1|}}} }}
{{urlencode: 2={{{2|}}} }}
{{urlencode: 3={{{3|}}} }}
}}
{{ImageNoteControl|notes=off|img=[[File:Example.jpg|60px|left]]}} Some text here.
----
{{Example/lang}}
</div>

Podstran lang: /lang

Dobra novica: Za to stran vam ni treba skrbeti. Ko je vse opravljeno, jo ustvarite z edino vsebino {{subst:lle}}, ki bo samodejno pregledala vse jezikovne podstrani in dodala povezave na tiste, ki obstajajo.

Če potrebujete prilagoditve, iz zmogljivostnih razlogov uporabite zunanje povezave, npr. z {{urlencode: … }} (v nasprotju s skladnjo za notranje povezave).[r]

Dokumentacijska podstran: /doc

Dobra zamisel je uporaba vzorca, kot je

{{TemplateBox
|1=
|1d=
|1def=
|1stat=required
|2=
|2d=
|2def=
|2stat=required
|name=Example
|desc=
|namespace=
|usergroup=
|placement=
|usage-notes=
|type=
|example=
|i18n-method=autotranslate
|i18n-desc=
|seealso=
* [[Example]]
|setscats=
|lines=
|shorthand=
|relieson=
}}

<includeonly>
[[Category:Example templates]]
</includeonly>

z uporabo Extension:Translate

Shortcut

Razširitev Extension:Translate je trenutno v večini primerov priporočeni sistem za samodejno prevajanje:

  • Najprej se seznanite s tem, kako stran označiti za prevod.
  • »Skelet« je stran, ki bo označena za prevod (tj. dodana v sistem Special:Translate). Ta ne more biti sama stran predloge, ki lahko vsebuje samo {{Autotranslate}}. Skelet zato postavite na podstran, najboljše na /i18n. Prevodne strani se bodo nato (samodejno) ustvarile na /i18n/langcode.
  • Skelet lahko/mora vsebovati vse označevanje in tudi neprevedljive dele. Sistem Translate bo to vikibesedilo samodejno kopiral na vse podstrani, ker pa je obdelava samodejna, to ne pomeni težave. Če prilagajate predlog s starejšim sistemom asistiranega prevajanja, predlogo /layout lahko kličente iz skeleta, vendar to ni priporočljivo.
  • Za ročno navajanje prevodov ni nobenega dobrega razloga, zato odstranite vse podstrani /lang. Značka <languages/> bi lahko samodejno naštela vse razpoložljive prevode, vendar to ni potrebno.
  • Treba je prilagoditi glavno predlogo, ki bo zgledala tako:
  • First, make yourself familiar about how to mark a page for translation.
  • The "skeleton" is the page which will be marked for translation (i.e. added to the Special:Translate system). It can't be the template page itself, which needs to only contain {{Autotranslate}}. Therefore, put the skeleton in a sub page, preferably /i18n. Translations will then be created (automatically) at /i18n/langcode.
  • The skeleton can/should contain all the markup and untranslatable parts as well. The Translate system will automatically copy this wikitext to all subpages, but since the handling is automatic this duplication is not a problem. If you're adapting a template using the earlier autotranslate system, you can call the /layout template from the skeleton, but it’s not recommended.
  • There is no need to list the translations manually, so remove any /lang subpage. The <languages/> tag could automatically list the available translations, but it’s not necessary.
  • The main template must be adapted and will look like:
{{Autotranslate|base=Example/i18n|1={{{1|}}}|2={{{2|}}}}}<noinclude>
{{documentation}}
</noinclude>
  • Ko ste označili podstran /i18n za prevod ali za pomoč zaprosili administratorja prevajanja, bo bot samodejno posodobil vse obstoječe podstrani, ki so prevodi. Ko prvič označite različico strani za prevod, bot ustvari podstran /en, ki jo bo Autotranslate uporabil kot glavni zasilni jezik. Dokler bo stran označena za prevod, spremembe na podstrani /i18n ne bodo prikazane pri upodobitvi predloge.
  • V dokumentacijski predlogi uporabite ext.translate kot |i18n-method=. Upoštevajte, da lahko parameter |i18n-subpage=, če je prisoten, povzroči nenavadne vrednosti (privzeta je i18n, razen če izpustite parameter name, in se ne sme spreminjati).
  • Velika prednost je, da je posodabljanje posredovanih parametrov predloge postavitve zdaj lažje kot kadar koli prej. Poleg tega dobite pregled nad napredkom prevajanja, prevajalcem pa se ni treba ukvarjati z zapletenimi konstrukti predloge. Poleg tega je mogoče popolnoma zaščititi glavno predlogo; prevode in celo podstran /i18n je namreč še vedno mogoče urejati.
  • Zgled je na strani Special:PrefixIndex/Template:TemplateBox.

The first time a page version is marked for translation, the bot creates the /en subpage which will be used as the main fallback language by autotranslate. Changes at the /i18n subpage won't take effect at the template rendering until after the page is marked for translation.

  • Use ext.translate as the |i18n-method= in the documentation template. Be aware of the |i18n-sub-page= parameter, as if present, it could lead to an uncommon value (default is i18n, except you omit the name parameter, and should not be changed).
  • The big advantage is that updating passed parameters to the layout template is now as easy as never before. Additionally, you get an overview over the translation progress and the translators do not have to mess with complicated template constructions. Finally, the main template can be fully protected; the translations are still editable and even the /i18n subpage.
  • An example is at Special:PrefixIndex/Template:TemplateBox.