შიგთავსზე გადასვლა

სამი წესი

FiberQ-ის docs/TRANSLATING.md სამ წესს „დაურღვევლად" (inviolable) მოიხსენიებს. ყველა მათგანის დარღვევა ჩუმად ხდება — შეცდომის შეტყობინება არ არსებობს.


წესი 1 — <source> არასდროს იცვლება

ინგლისური ტექსტი არის lookup key. გაშვებული პლაგინი ზუსტად ამ ფრაზის თარგმანს ითხოვს.

<!-- სწორი -->
<source>Place Manhole</source>
<translation>ჭის განთავსება</translation>
<!-- არასწორი — ეს სტრიქონი აღარასდროს ითარგმნება -->
<source>ჭის განთავსება</source>
<translation>ჭის განთავსება</translation>

ერთი სიმბოლოც კი — ზედმეტი ჰარიც — და ფრაზა ჩუმად ბრუნდება ინგლისურზე.

თუ ინგლისურში შეცდომა შენიშნე

ეს რეალური და სასარგებლო აღმოჩენაა — მაგრამ .ts ფაილში კი არ სწორდება, არამედ issue იხსნება.


წესი 2 — placeholder-ები ზუსტად უნდა შენარჩუნდეს

ფიგურულ ფრჩხილებში ჩასმული მარკერები, რომლებსაც პლაგინი გაშვებისას რეალური მნიშვნელობებით ცვლის.

თარგმანში უნდა გამოჩნდეს ზუსტად ისე, როგორც ინგლისურში — ფრჩხილებით, პატარა ასოებით. გადაადგილება შეიძლება, გადარქმევა/თარგმნა/წაშლა — არა.

source:   Imported {count} points into layer '{layer}'!
✅ სწორი: '{layer}' შრეში იმპორტირებულია {count} წერტილი!
❌ არა:   '{შრე}' შრეში იმპორტირებულია {რაოდენობა} წერტილი!
❌ არა:   შრეში იმპორტირებულია წერტილები!

წაშლილი placeholder უარესია, ვიდრე უთარგმნელი სტრიქონი

პლაგინი შეიძლება შეცდომას აგდებდეს, როცა ცარიელი ადგილის შევსებას შეეცდება. კოდში ამის დამცავიც კია — safe_format(), რომელიც ინგლისურზე ბრუნდება, თუ თარგმანი ვერ ფორმატირდა. მაგრამ მაშინ მომხმარებელი ინგლისურ წარწერას ხედავს.

ქართული და ბრუნვები

ყველაზე ხშირი ხაფანგი ჩვენთვის. დაბოლოება ფრჩხილების გარეთ ჯდება:

ბრუნვა მაგალითი
ვითარებითი '{layer}'-ში
მიცემითი {crs}-სთვის
ნათესაობითი ODF-ის
მოქმედებითი {distance}-ითაა
ვისგან {target}-იდან

ასე placeholder ბაიტ-იდენტური რჩება და წინადადებაც ბუნებრივად იბრუნება.

34 placeholder

{allowed} {bound} {computed} {count} {crs} {details} {distance} {expected} {ext} {features} {fid} {field} {fields} {format} {km} {label} {language} {layer} {layer_id} {layers} {list} {name} {new} {old} {path} {rules} {scope} {shortcut} {shown} {stored} {summary} {target} {tol} {total} {value}

პლუს Qt-ის საკუთარი %n მთვლელი 13 numerus სტრიქონში.

სხვა, რაც უნდა შენარჩუნდეს

ელემენტი მაგალითი რატომ
\n Language set to {language}.\n\n… ხაზის გადატანა
(U+2026) Add drawing… Qt-ის კონვენცია: „იხსნება დიალოგი"
... (სამი ASCII წერტილი) Export selected... კატალოგში ორივე სტილია — თითოეულს თავისი
: Severity: ფილტრის წარწერა
;; Images (*.jpg);;All files (*.*) Qt-ის ფაილ-ფილტრის გამყოფი
-> Project -> Properties -> CRS მენიუს გზა

წესი 3 — არაფერი კომპილირდება

.qm ფაილები არის ბინარული კატალოგები, რომლებსაც პლაგინი რეალურად კითხულობს. მათ მეინთეინერი აგენერირებს.

  • Qt Linguist-ში: File → Save
  • Qt Linguist-ში: File → Releaseარასდროს
  • უკან მიდის მხოლოდ .ts

რაც არ არის წესი, მაგრამ მნიშვნელოვანია

მანქანური თარგმანი ნედლად არ იგზავნება. CONTRIBUTING.md ხსნის რატომ: ძრავები ბოჭკოს ტერმინოლოგიას თავდაჯერებულად და თანმიმდევრულად ამახინჯებენ. პირველ დრაფტად გამოყენება, რომელსაც შემდეგ თვითონ ასწორებ, ნორმალურია; ნედლი გამოსავალის გაგზავნა — არა, რადგან დასრულებულად გამოიყურება და გამოუსადეგარია.

<extracomment> ჯერ იკითხება, მერე ითარგმნება. 95 სტრიქონს აქვს მეინთეინერის შენიშვნა. ისინი არსებობს იმიტომ, რომ ინგლისური მარტო ორაზროვანია.

ეჭვის შემთხვევაში — კითხე, ნუ გამოიცნობ.

a flagged gap is more useful than a confident wrong term

უთარგმნელი სტრიქონი აშკარად ინგლისურია და აშკარად მოსაგვარებელი. არასწორი ტერმინი კი დასრულებულად გამოიყურება, გადადის შემდეგ ნამუშევარში, მიდის მომხმარებლამდე და შეცდომაში შეჰყავს ინჟინრები, რომლებიც მას ენდობიან.