Π§ΠΈΡ‚Π°ΠΉΡ‚Π΅ ΠΊΠ½ΠΈΠ³ΠΈ ΠΎΠ½Π»Π°ΠΉΠ½ Π½Π° Bookidrom.ru! БСсплатныС ΠΊΠ½ΠΈΠ³ΠΈ Π² ΠΎΠ΄Π½ΠΎΠΌ ΠΊΠ»ΠΈΠΊΠ΅

Π§ΠΈΡ‚Π°Ρ‚ΡŒ ΠΎΠ½Π»Π°ΠΉΠ½ Β«QT 4: ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ GUI Π½Π° Π‘++Β». Π‘Ρ‚Ρ€Π°Π½ΠΈΡ†Π° 95

Автор Жасмин Π‘Π»Π°Π½ΡˆΠ΅Ρ‚

Бобытия LanguageChange Π½Π΅ слСдуСт ΠΏΡƒΡ‚Π°Ρ‚ΡŒ с событиями LocaleChange. Π‘ΠΎΠ±Ρ‹Ρ‚ΠΈΠ΅ LocaleChange гСнСрируСтся систСмой ΠΈ Π³ΠΎΠ²ΠΎΡ€ΠΈΡ‚ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡŽ: Β«Π’ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ, слСдуСт Π·Π°Π³Ρ€ΡƒΠ·ΠΈΡ‚ΡŒ Π½ΠΎΠ²Ρ‹ΠΉ Ρ„Π°ΠΉΠ» ΠΏΠ΅Ρ€Π΅Π²ΠΎΠ΄Π°Β». Π’ ΠΎΡ‚Π»ΠΈΡ‡ΠΈΠ΅ ΠΎΡ‚ Π½Π΅Π³ΠΎ, событиС LanguageChange гСнСрируСтся Qt ΠΈ Π³ΠΎΠ²ΠΎΡ€ΠΈΡ‚ Π²ΠΈΠ΄ΠΆΠ΅Ρ‚Π°ΠΌ прилоТСния: Β«Π’ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ, слСдуСт Π·Π°Π½ΠΎΠ²ΠΎ Π²Ρ‹ΠΏΠΎΠ»Π½ΠΈΡ‚ΡŒ ΠΏΠ΅Ρ€Π΅Π²ΠΎΠ΄ всСх Π²Π°ΡˆΠΈΡ… строк».

ΠŸΡ€ΠΈ Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ Π½Π°ΠΌΠΈ класса MainWindow Π½Π΅ Π½ΡƒΠΆΠ½ΠΎ Π±Ρ‹Π»ΠΎ Ρ€Π΅Π°Π³ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Π½Π° событиС LanguageChange. ВмСсто этого ΠΌΡ‹ просто всякий Ρ€Π°Π· Π²Ρ‹Π·Ρ‹Π²Π°Π»ΠΈ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ retranslateUi() ΠΏΡ€ΠΈ Π²Ρ‹Π·ΠΎΠ²Π΅ load() для QTranslator.

01 void JournalView::retranslateUi()

02 {

03 QStringList labels;

04 labels << tr("Time") << tr("Priority") << tr("Phone Number")

05 << tr("Subject");

06 setHorizontalHeaderLabels(labels);

07 }

Ѐункция retranslateUi() Π·Π°Π½ΠΎΠ²ΠΎ создаСт Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΊΠΈ, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡ Π½ΠΎΠ²Ρ‹ΠΉ ΠΏΠ΅Ρ€Π΅Π²Π΅Π΄Π΅Π½Π½Ρ‹ΠΉ тСкст, ΠΈ этим ΠΌΡ‹ Π·Π°Π²Π΅Ρ€ΡˆΠ°Π΅ΠΌ рассмотрСниС ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½ΠΎΠ³ΠΎ ΠΊΠΎΠ΄Π°, относящСгося ΠΊ ΠΏΠ΅Ρ€Π΅Π²ΠΎΠ΄Ρƒ созданного Π²Ρ€ΡƒΡ‡Π½ΡƒΡŽ Π²ΠΈΠ΄ΠΆΠ΅Ρ‚Π°. Для Π²ΠΈΠ΄ΠΆΠ΅Ρ‚ΠΎΠ² ΠΈ Π΄ΠΈΠ°Π»ΠΎΠ³ΠΎΠ²Ρ‹Ρ… ΠΎΠΊΠΎΠ½, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Ρ€Π°Π·Ρ€Π°Π±Π°Ρ‚Ρ‹Π²Π°ΡŽΡ‚ΡΡ ΠΏΡ€ΠΈ ΠΏΠΎΠΌΠΎΡ‰ΠΈ Qt Designer, ΡƒΡ‚ΠΈΠ»ΠΈΡ‚Π° uic автоматичСски Π³Π΅Π½Π΅Ρ€ΠΈΡ€ΡƒΠ΅Ρ‚ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ, ΠΏΠΎΠ΄ΠΎΠ±Π½ΡƒΡŽ retranslateUi(), которая автоматичСски вызываСтся Π² ΠΎΡ‚Π²Π΅Ρ‚ Π½Π° события LanguageChange.

ΠŸΠ΅Ρ€Π΅Π²ΠΎΠ΄ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ

ΠŸΠ΅Ρ€Π΅Π²ΠΎΠ΄ прилоТСния Qt, ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ содСрТит Π²Ρ‹Π·ΠΎΠ²Ρ‹ tr(), состоит ΠΈΠ· Ρ‚Ρ€Π΅Ρ… этапов:

1. Π’Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ ΡƒΡ‚ΠΈΠ»ΠΈΡ‚Ρ‹ lupdate для извлСчСния ΠΈΠ· исходного ΠΊΠΎΠ΄Π° прилоТСния всСх Π²ΠΈΠ΄ΠΈΠΌΡ‹Ρ… ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Π΅ΠΌ строк.

2. ΠŸΠ΅Ρ€Π΅Π²ΠΎΠ΄ прилоТСния ΠΏΡ€ΠΈ ΠΏΠΎΠΌΠΎΡ‰ΠΈ Qt Linguist.

3. Π’Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ ΡƒΡ‚ΠΈΠ»ΠΈΡ‚Ρ‹ lrelease для получСния Π΄Π²ΠΎΠΈΡ‡Π½Ρ‹Ρ… Ρ„Π°ΠΉΠ»ΠΎΠ² .qm, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ ΠΌΠΎΠΆΠ΅Ρ‚ Π·Π°Π³Ρ€ΡƒΠΆΠ°Ρ‚ΡŒ ΠΏΡ€ΠΈ ΠΏΠΎΠΌΠΎΡ‰ΠΈ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π° QTranslator.

Π­Ρ‚Π°ΠΏΡ‹ 1 ΠΈ 3 Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡŽΡ‚ΡΡ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠ°ΠΌΠΈ прилоТСния. Π­Ρ‚Π°ΠΏ 2 выполняСтся ΠΏΠ΅Ρ€Π΅Π²ΠΎΠ΄Ρ‡ΠΈΠΊΠ°ΠΌΠΈ. Π­Ρ‚Π° ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ дСйствий ΠΌΠΎΠΆΠ΅Ρ‚ Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡ‚ΡŒΡΡ любоС количСство Ρ€Π°Π· Π² Ρ…ΠΎΠ΄Π΅ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ прилоТСния ΠΈ Π½Π° протяТСнии всСго Π΅Π³ΠΎ ΠΆΠΈΠ·Π½Π΅Π½Π½ΠΎΠ³ΠΎ Ρ†ΠΈΠΊΠ»Π°.

Π’ качСствС ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π° ΠΌΡ‹ продСмонстрируСм ΠΏΠ΅Ρ€Π΅Π²ΠΎΠ΄ прилоТСния ЭлСктронная Ρ‚Π°Π±Π»ΠΈΡ†Π° ΠΈΠ· Π³Π»Π°Π²Ρ‹ 3. ΠŸΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ ΡƒΠΆΠ΅ содСрТит Π²Ρ‹Π·ΠΎΠ²Ρ‹ tr() для всСх Π²ΠΈΠ΄ΠΈΠΌΡ‹Ρ… ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Π΅ΠΌ строк.

Π’ΠΎ-ΠΏΠ΅Ρ€Π²Ρ‹Ρ…, ΠΌΡ‹ Π΄ΠΎΠ»ΠΆΠ½Ρ‹ Π½Π΅ΠΌΠ½ΠΎΠ³ΠΎ ΠΌΠΎΠ΄ΠΈΡ„ΠΈΡ†ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Ρ„Π°ΠΉΠ» прилоТСния .pro, ΡƒΠΊΠ°Π·Π°Π² языки, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΌΡ‹ собираСмся ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Ρ‚ΡŒ. НапримСр, Ссли Π±Ρ‹ ΠΌΡ‹ Ρ…ΠΎΡ‚Π΅Π»ΠΈ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Ρ‚ΡŒ ΠΊΡ€ΠΎΠΌΠ΅ английского Ρ‚Π°ΠΊΠΆΠ΅ Π½Π΅ΠΌΠ΅Ρ†ΠΊΠΈΠΉ ΠΈ французский, ΠΌΡ‹ Π±Ρ‹ Π΄ΠΎΠ±Π°Π²ΠΈΠ»ΠΈ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΉ элСмСнт TRANSLATIONS Π² Ρ„Π°ΠΉΠ» spreadsheet.pro:

TRANSLATIONS = spreadsheet_de.ts

\ spreadsheet_fr.ts

Π—Π΄Π΅ΡΡŒ ΠΌΡ‹ ΡƒΠΊΠ°Π·Π°Π»ΠΈ Π΄Π²Π° Ρ„Π°ΠΉΠ»Π° ΠΏΠ΅Ρ€Π΅Π²ΠΎΠ΄ΠΎΠ²: ΠΎΠ΄ΠΈΠ½ для Π½Π΅ΠΌΠ΅Ρ†ΠΊΠΎΠ³ΠΎ языка ΠΈ Π²Ρ‚ΠΎΡ€ΠΎΠΉ для французского языка.

Π­Ρ‚ΠΈ Ρ„Π°ΠΉΠ»Ρ‹ Π±ΡƒΠ΄ΡƒΡ‚ созданы ΠΏΡ€ΠΈ ΠΏΠ΅Ρ€Π²ΠΎΠΌ Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠΈ ΡƒΡ‚ΠΈΠ»ΠΈΡ‚Ρ‹ lupdate, ΠΈ Π·Π°Ρ‚Π΅ΠΌ ΠΎΠ½ΠΈ Π±ΡƒΠ΄ΡƒΡ‚ ΠΎΠ±Π½ΠΎΠ²Π»ΡΡ‚ΡŒΡΡ ΠΏΡ€ΠΈ ΠΊΠ°ΠΆΠ΄ΠΎΠΌ ΠΏΠΎΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅ΠΌ Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠΈ lupdate.

Π­Ρ‚ΠΈ Ρ„Π°ΠΉΠ»Ρ‹ ΠΎΠ±Ρ‹Ρ‡Π½ΠΎ ΠΈΠΌΠ΅ΡŽΡ‚ Ρ€Π°ΡΡˆΠΈΡ€Π΅Π½ΠΈΠ΅ .ts. Они ΠΈΠΌΠ΅ΡŽΡ‚ простой Ρ„ΠΎΡ€ΠΌΠ°Ρ‚ XML ΠΈ Π½Π΅ ΡΡ‚ΠΎΠ»ΡŒ ΠΊΠΎΠΌΠΏΠ°ΠΊΡ‚Π½Ρ‹, ΠΊΠ°ΠΊ Π΄Π²ΠΎΠΈΡ‡Π½Ρ‹Π΅ Ρ„Π°ΠΉΠ»Ρ‹ .qm, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Β«ΠΏΠΎΠ½ΠΈΠΌΠ°ΡŽΡ‚Β» ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Ρ‹ Ρ‚ΠΈΠΏΠ° QTranslator. Π’ Π·Π°Π΄Π°Ρ‡Ρƒ ΡƒΡ‚ΠΈΠ»ΠΈΡ‚Ρ‹ lrelease Π²Ρ…ΠΎΠ΄ΠΈΡ‚ ΠΏΡ€Π΅ΠΎΠ±Ρ€Π°Π·ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΏΡ€Π΅Π΄Π½Π°Π·Π½Π°Ρ‡Π΅Π½Π½Ρ‹Ρ… для людСй Ρ„Π°ΠΉΠ»ΠΎΠ² .ts Π² эффСктивноС машинноС прСдставлСниС Π² Π²ΠΈΠ΄Π΅ Ρ„Π°ΠΉΠ»ΠΎΠ² .qm. ΠœΠ΅ΠΆΠ΄Ρƒ ΠΏΡ€ΠΎΡ‡ΠΈΠΌ, сокращСниС .ts ΠΎΠ·Π½Π°Ρ‡Π°Π΅Ρ‚ Ρ„Π°ΠΉΠ» Β«translation sourceΒ» (Ρ„Π°ΠΉΠ» с исходным тСкстом ΠΏΠ΅Ρ€Π΅Π²ΠΎΠ΄Π°), Π° .qm β€” Ρ„Π°ΠΉΠ» Β«Qt messageΒ» (Ρ„Π°ΠΉΠ» сообщСний Qt).

ΠŸΡ€Π΅Π΄ΠΏΠΎΠ»ΠΎΠΆΠΈΠΌ, Ρ‡Ρ‚ΠΎ ΠΌΡ‹ находимся Π² ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³Π΅, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ содСрТит исходный ΠΊΠΎΠ΄ прилоТСния ЭлСктронная Ρ‚Π°Π±Π»ΠΈΡ†Π°, ΠΈ Ρ‚ΠΎΠ³Π΄Π° ΠΌΡ‹ ΠΌΠΎΠΆΠ΅ΠΌ Π²Ρ‹ΠΏΠΎΠ»Π½ΠΈΡ‚ΡŒ ΡƒΡ‚ΠΈΠ»ΠΈΡ‚Ρƒ lupdate для spreadsheet.pro, задавая Π² ΠΊΠΎΠΌΠ°Π½Π΄Π½ΠΎΠΉ строкС ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΡƒΡŽ ΠΊΠΎΠΌΠ°Π½Π΄Ρƒ:

lupdate -verbose spreadsheet.pro

ΠžΠΏΡ†ΠΈΡ β€”verbose ΡƒΠΊΠ°Π·Ρ‹Π²Π°Π΅Ρ‚ ΡƒΡ‚ΠΈΠ»ΠΈΡ‚Π΅ lupdate Π½Π° Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎΡΡ‚ΡŒ Π±ΠΎΠ»Π΅Π΅ интСнсивной ΠΎΠ±Ρ€Π°Ρ‚Π½ΠΎΠΉ связи, Ρ‡Π΅ΠΌ Ρ‚Π°, которая обСспСчиваСтся ΠΏΡ€ΠΈ Π½ΠΎΡ€ΠΌΠ°Π»ΡŒΠ½ΠΎΠΌ Ρ€Π΅ΠΆΠΈΠΌΠ΅ Ρ€Π°Π±ΠΎΡ‚Ρ‹. НиТС приводятся сообщСния, получСния ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… слСдуСт ΠΎΠΆΠΈΠ΄Π°Ρ‚ΡŒ Π² Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Π΅ Ρ€Π°Π±ΠΎΡ‚Ρ‹ ΡƒΡ‚ΠΈΠ»ΠΈΡ‚Ρ‹:

Updating 'spreadsheet_de.ts'...

Found 98 source texts (98 new and 0 already existing)

Updating 'spreadsheet_fr.ts'...

Found 98 source texts (98 new and 0 already existing)

ВсС строки, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π·Π°Π΄Π°ΡŽΡ‚ΡΡ Π² Π²Ρ‹Π·ΠΎΠ²Π°Ρ… Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ tr() Π² исходном ΠΊΠΎΠ΄Π΅ прилоТСния, хранятся Π² Ρ„Π°ΠΉΠ»Π°Ρ… .ts (Π² Ρ‚ΠΎΠΌ числС ΠΈ псСвдопСрСвод). Бюда Ρ‚Π°ΠΊΠΆΠ΅ Π²ΠΊΠ»ΡŽΡ‡Π°ΡŽΡ‚ΡΡ строки ΠΈΠ· Ρ„Π°ΠΉΠ»ΠΎΠ² прилоТСния .ui.

По ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ ΡƒΡ‚ΠΈΠ»ΠΈΡ‚Π° lupdate ΠΏΡ€Π΅Π΄ΠΏΠΎΠ»Π°Π³Π°Π΅Ρ‚, Ρ‡Ρ‚ΠΎ ΠΏΠ΅Ρ€Π΅Π΄Π°Π²Π°Π΅ΠΌΡ‹Π΅ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ tr() строки ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ ΠΊΠΎΠ΄ΠΈΡ€ΠΎΠ²ΠΊΡƒ Latin-1. Если это Π½Π΅ Ρ‚Π°ΠΊ, ΠΌΡ‹ Π΄ΠΎΠ»ΠΆΠ½Ρ‹ Π΄ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ элСмСнт CODECFORTR Π² Ρ„Π°ΠΉΠ» .pro. НапримСр:

CODECFORTR = EUC-JP

Π­Ρ‚ΠΎ Π΄ΠΎΠ»ΠΆΠ½ΠΎ Π±Ρ‹Ρ‚ΡŒ сдСлано Π² Π΄ΠΎΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ ΠΊ Π²Ρ‹Π·ΠΎΠ²Ρƒ QTextCodec::setCodecForTr() ΠΈΠ· Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ прилоТСния main().

Π—Π°Ρ‚Π΅ΠΌ Π² Ρ„Π°ΠΉΠ»Ρ‹ spreadsheet_de.ts ΠΈ spreadsheet_fr.ts Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ Π΄ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ ΠΏΠ΅Ρ€Π΅Π²ΠΎΠ΄, Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½Π½Ρ‹ΠΉ ΠΏΡ€ΠΈ ΠΏΠΎΠΌΠΎΡ‰ΠΈ Qt Linguist.

Для запуска Qt Linguist Π²Ρ‹Π±Π΅Ρ€ΠΈΡ‚Π΅ ΠΏΡƒΠ½ΠΊΡ‚ Qt by Trolltech v4.x.y | Linguist Π² мСню Start Π² систСмС Windows, Π²Π²Π΅Π΄ΠΈΡ‚Π΅ linguist Π² ΠΊΠΎΠΌΠ°Π½Π΄Π½ΠΎΠΉ строкС Π² систСмС Unix ΠΈΠ»ΠΈ Π΄Π²Π°ΠΆΠ΄Ρ‹ Ρ‰Π΅Π»ΠΊΠ½ΠΈΡ‚Π΅ ΠΏΠΎ Linguist Π² систСмС Mac OS X Finder. Для добавлСния ΠΏΠ΅Ρ€Π΅Π²ΠΎΠ΄Π° Π² Ρ„Π°ΠΉΠ» .ts Π²Ρ‹Π±Π΅Ρ€ΠΈΡ‚Π΅ ΠΏΡƒΠ½ΠΊΡ‚ мСню File | Open ΠΈ ΡƒΠΊΠ°ΠΆΠΈΡ‚Π΅ Ρ„Π°ΠΉΠ» для ΠΏΠ΅Ρ€Π΅Π²ΠΎΠ΄Π°.

Π‘ Π»Π΅Π²ΠΎΠΉ стороны Π³Π»Π°Π²Π½ΠΎΠ³ΠΎ ΠΎΠΊΠ½Π° ΡƒΡ‚ΠΈΠ»ΠΈΡ‚Ρ‹ Qt Linguist отобраТаСтся список всСх контСкстов ΠΏΠ΅Ρ€Π΅Π²ΠΎΠ΄ΠΈΠΌΠΎΠ³ΠΎ Π½Π° Π΄Ρ€ΡƒΠ³ΠΈΠ΅ языки прилоТСния. Для прилоТСния ЭлСктронная Ρ‚Π°Π±Π»ΠΈΡ†Π° этими контСкстами ΡΠ²Π»ΡΡŽΡ‚ΡΡ Β«FindDialogΒ», Β«GoToCellDialogΒ», Β«MainWindowΒ», Β«SortDialogΒ» ΠΈ Β«SpreadsheetΒ». Π‘ΠΏΡ€Π°Π²Π° Π²Π²Π΅Ρ€Ρ…Ρƒ выводится список всСх исходных строк для Ρ‚Π΅ΠΊΡƒΡ‰Π΅Π³ΠΎ контСкста. КаТдая исходная строка сопровоТдаСтся ΠΏΠ΅Ρ€Π΅Π²ΠΎΠ΄ΠΎΠΌ ΠΈ Ρ„Π»Π°ΠΆΠΊΠΎΠΌ Done (Π³ΠΎΡ‚ΠΎΠ²ΠΎ). Π‘ΠΏΡ€Π°Π²Π° ΠΏΠΎ Ρ†Π΅Π½Ρ‚Ρ€Ρƒ находится ΠΎΠ±Π»Π°ΡΡ‚ΡŒ, Π³Π΄Π΅ ΠΌΡ‹ ΠΌΠΎΠΆΠ΅ΠΌ Π²Π²ΠΎΠ΄ΠΈΡ‚ΡŒ ΠΏΠ΅Ρ€Π΅Π²ΠΎΠ΄ Ρ‚Π΅ΠΊΡƒΡ‰Π΅ΠΉ исходной строки. Π‘ΠΏΡ€Π°Π²Π° Π²Π½ΠΈΠ·Ρƒ ΠΎΡ‚ΠΎΠ±Ρ€Π°ΠΆΠ°ΡŽΡ‚ΡΡ подсказки ΠΏΠΎ ΠΏΠ΅Ρ€Π΅Π²ΠΎΠ΄Ρƒ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ автоматичСски Π³Π΅Π½Π΅Ρ€ΠΈΡ€ΡƒΡŽΡ‚ΡΡ Qt Linguist.

ПослС создания Π½Π°ΠΌΠΈ Ρ„Π°ΠΉΠ»Π° ΠΏΠ΅Ρ€Π΅Π²ΠΎΠ΄ΠΎΠ² .ts Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ Π΅Π³ΠΎ ΠΏΡ€Π΅ΠΎΠ±Ρ€Π°Π·ΠΎΠ²Π°Ρ‚ΡŒ Π² Π΄Π²ΠΎΠΈΡ‡Π½Ρ‹ΠΉ Ρ„Π°ΠΉΠ» .qm, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΎΠ½ Π±Ρ‹Π» понятСн для QTranslator. Для этого Π² Qt Linguist Π²Ρ‹Π±Π΅Ρ€ΠΈΡ‚Π΅ ΠΏΡƒΠ½ΠΊΡ‚ мСню File | Release. ΠžΠ±Ρ‹Ρ‡Π½ΠΎ ΠΌΡ‹ Π½Π°Ρ‡ΠΈΠ½Π°Π΅ΠΌ с ΠΏΠ΅Ρ€Π΅Π²ΠΎΠ΄Π° Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π½Π΅ΡΠΊΠΎΠ»ΡŒΠΊΠΈΡ… строк ΠΈ Π·Π°Ρ‚Π΅ΠΌ выполняСм ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ с ΠΏΡ€ΠΈΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ΠΌ Ρ„Π°ΠΉΠ»Π° .qm, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΡƒΠ±Π΅Π΄ΠΈΡ‚ΡŒΡΡ, Ρ‡Ρ‚ΠΎ всС Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½ΠΎ.

Рис. 17.2. Qt Linguist Π² дСйствии.

Если ΠΌΡ‹ Ρ…ΠΎΡ‚ΠΈΠΌ Π·Π°Π½ΠΎΠ²ΠΎ ΡΠ³Π΅Π½Π΅Ρ€ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Ρ„Π°ΠΉΠ»Ρ‹ .qm для всСх Ρ„Π°ΠΉΠ»ΠΎΠ² .ts, ΠΌΡ‹ ΠΌΠΎΠΆΠ΅ΠΌ Π·Π°ΠΏΡƒΡΡ‚ΠΈΡ‚ΡŒ ΡƒΡ‚ΠΈΠ»ΠΈΡ‚Ρƒ lrelease ΠΈΠ· ΠΊΠΎΠΌΠ°Π½Π΄Π½ΠΎΠΉ строки ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ:

lrelease -verbose spreadsheet.pro

Если ΠΌΡ‹ выполняли ΠΏΠ΅Ρ€Π΅Π²ΠΎΠ΄ 19 строк Π½Π° французский язык ΠΈ ΠΎΡ‚ΠΌΠ΅Ρ‚ΠΈΠ»ΠΈ Ρ„Π»Π°ΠΆΠΊΠΎΠΌ Done 17 ΠΈΠ· Π½ΠΈΡ…, ΡƒΡ‚ΠΈΠ»ΠΈΡ‚Π° lrelease выдаст ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΉ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚:

Updating 'spreadsheet_de.qm'...

Generated 0 translations (0 finished and 0 unfinished)

Ignored 98 untranslated source texts

Updating 'spreadsheet_fr.qm"...

Generated 19 translations (17 finished and 2 unfinished)

Ignored 79 untranslated source texts

Π€Π»Π°ΠΆΠΎΠΊ Done игнорируСтся ΡƒΡ‚ΠΈΠ»ΠΈΡ‚ΠΎΠΉ lrelease; ΠΎΠ½ ΠΌΠΎΠΆΠ΅Ρ‚ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒΡΡ ΠΏΠ΅Ρ€Π΅Π²ΠΎΠ΄Ρ‡ΠΈΠΊΠ°ΠΌΠΈ для ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ†ΠΈΠΈ Π·Π°ΠΊΠΎΠ½Ρ‡Π΅Π½Π½Ρ‹Ρ… ΠΏΠ΅Ρ€Π΅Π²ΠΎΠ΄ΠΎΠ² ΠΈ Ρ‚Π΅Ρ…, ΠΏΠ΅Ρ€Π΅Π²ΠΎΠ΄ ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ Π²Ρ‹ΠΏΠΎΠ»Π½ΠΈΡ‚ΡŒ Π·Π°Π½ΠΎΠ²ΠΎ. НСпСрСвСдСнныС строки ΠΏΡ€ΠΈ Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠΈ прилоТСния выводятся Π½Π° языкС ΠΎΡ€ΠΈΠ³ΠΈΠ½Π°Π»Π°.

Когда ΠΌΡ‹ ΠΌΠΎΠ΄ΠΈΡ„ΠΈΡ†ΠΈΡ€ΡƒΠ΅ΠΌ исходный ΠΊΠΎΠ΄ прилоТСния, Ρ„Π°ΠΉΠ»Ρ‹ ΠΏΠ΅Ρ€Π΅Π²ΠΎΠ΄Π° ΠΌΠΎΠ³ΡƒΡ‚ ΡƒΡΡ‚Π°Ρ€Π΅Ρ‚ΡŒ. РСшСниС этой ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΡ‹ Π·Π°ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ΡΡ Π² ΠΏΠΎΠ²Ρ‚ΠΎΡ€Π½ΠΎΠΌ Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠΈ ΡƒΡ‚ΠΈΠ»ΠΈΡ‚Ρ‹ lupdate, обСспСчСнии ΠΏΠ΅Ρ€Π΅Π²ΠΎΠ΄Π° Π½ΠΎΠ²Ρ‹Ρ… строк ΠΈ ΠΏΠΎΠ²Ρ‚ΠΎΡ€Π½ΠΎΠΉ Π³Π΅Π½Π΅Ρ€Π°Ρ†ΠΈΠΈ Ρ„Π°ΠΉΠ»ΠΎΠ² .qm. Одни Π³Ρ€ΡƒΠΏΠΏΡ‹ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΎΠ² ΠΌΠΎΠ³ΡƒΡ‚ ΠΏΠΎΡΡ‡ΠΈΡ‚Π°Ρ‚ΡŒ ΡƒΠ΄ΠΎΠ±Π½Ρ‹ΠΌ частоС Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ ΡƒΡ‚ΠΈΠ»ΠΈΡ‚Ρ‹ lupdate, Π° Π΄Ρ€ΡƒΠ³ΠΈΠ΅ ΠΌΠΎΠ³ΡƒΡ‚ Π·Π°Ρ…ΠΎΡ‚Π΅Ρ‚ΡŒ это Π΄Π΅Π»Π°Ρ‚ΡŒ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ для ΠΏΠΎΡ‡Ρ‚ΠΈ Π³ΠΎΡ‚ΠΎΠ²ΠΎΠ³ΠΎ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½ΠΎΠ³ΠΎ ΠΏΡ€ΠΎΠ΄ΡƒΠΊΡ‚Π°.

Π£Ρ‚ΠΈΠ»ΠΈΡ‚Ρ‹ lupdate ΠΈ Qt Linguist достаточно Β«ΡƒΠΌΠ½Ρ‹Π΅Β». ΠŸΠ΅Ρ€Π΅Π²ΠΎΠ΄Ρ‹, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ с ΠΊΠ°ΠΊΠΎΠ³ΠΎ-Ρ‚ΠΎ ΠΌΠΎΠΌΠ΅Π½Ρ‚Π° Π½Π΅ стали ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒΡΡ, ΡΠΎΡ…Ρ€Π°Π½ΡΡŽΡ‚ΡΡ Π² Ρ„Π°ΠΉΠ»Π°Ρ… .ts Π½Π° случай, Ссли ΠΎΠ½ΠΈ ΠΏΠΎΡ‚Ρ€Π΅Π±ΡƒΡŽΡ‚ΡΡ ΠΊΠΎΠ³Π΄Π°-Π½ΠΈΠ±ΡƒΠ΄ΡŒ Π² Π±ΡƒΠ΄ΡƒΡ‰Π΅ΠΌ. ΠŸΡ€ΠΈ ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΠΈ Ρ„Π°ΠΉΠ»ΠΎΠ² .ts ΡƒΡ‚ΠΈΠ»ΠΈΡ‚Π° lupdate ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ Β«ΠΈΠ½Ρ‚Π΅Π»Π»Π΅ΠΊΡ‚ΡƒΠ°Π»ΡŒΠ½Ρ‹ΠΉΒ» Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌ слияния, ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡŽΡ‰ΠΈΠΉ ΠΏΠ΅Ρ€Π΅Π²ΠΎΠ΄Ρ‡ΠΈΠΊΠ°ΠΌ ΡΡΠΊΠΎΠ½ΠΎΠΌΠΈΡ‚ΡŒ ΠΌΠ½ΠΎΠ³ΠΎ Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ ΠΏΡ€ΠΈ Ρ€Π°Π±ΠΎΡ‚Π΅ с тСкстом, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ совпадаСт ΠΈΠ»ΠΈ ΠΏΠΎΠ΄ΠΎΠ±Π΅Π½ Π² Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Ρ… контСкстах.

Π‘ΠΎΠ»Π΅Π΅ ΠΏΠΎΠ΄Ρ€ΠΎΠ±Π½ΡƒΡŽ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΡŽ ΠΎΡ‚Π½ΠΎΡΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ Qt Linguist, lupdate ΠΈ lrelease ΠΌΠΎΠΆΠ½ΠΎ Π½Π°ΠΉΡ‚ΠΈ Π² руководствС ΠΏΠΎ Qt Linguist Π² сСти Π˜Π½Ρ‚Π΅Ρ€Π½Π΅Ρ‚ ΠΏΠΎ адрСсу http://doc.trolltech.com/4.1/linguist-manual.html. Π­Ρ‚ΠΎ руководство содСрТит ΠΏΠΎΠ»Π½ΠΎΠ΅ описаниС интСрфСйса ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ для Qt Linguist ΠΈ ΡƒΡ‡Π΅Π±Π½ΠΎΠ΅ пособиС для поэтапного обучСния программистов.

Π“Π»Π°Π²Π° 18. ΠœΠ½ΠΎΠ³ΠΎΠΏΠΎΡ‚ΠΎΡ‡Π½Π°Ρ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠ°

ΠžΠ±Ρ‹Ρ‡Π½Ρ‹Π΅ прилоТСния с графичСским интСрфСйсом ΠΈΠΌΠ΅ΡŽΡ‚ ΠΎΠ΄ΠΈΠ½ ΠΏΠΎΡ‚ΠΎΠΊ (thread) выполнСния ΠΈ производят Π² ΠΊΠ°ΠΆΠ΄Ρ‹ΠΉ ΠΌΠΎΠΌΠ΅Π½Ρ‚ Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ ΠΎΠ΄Π½Ρƒ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΡŽ. Если ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒ Ρ‡Π΅Ρ€Π΅Π· интСрфСйс ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ Π²Ρ‹Π·Ρ‹Π²Π°Π΅Ρ‚ ΠΏΡ€ΠΎΠ΄ΠΎΠ»ΠΆΠΈΡ‚Π΅Π»ΡŒΠ½ΡƒΡŽ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΡŽ, интСрфСйс, ΠΊΠ°ΠΊ ΠΏΡ€Π°Π²ΠΈΠ»ΠΎ, «застываСт» Π΄ΠΎ Π·Π°Π²Π΅Ρ€ΡˆΠ΅Π½ΠΈΡ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ. Π’ Π³Π»Π°Π²Π΅ 7 (Β«ΠžΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠ° событий») Π΄Π°ΡŽΡ‚ΡΡ Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ способы Ρ€Π΅ΡˆΠ΅Π½ΠΈΡ этой ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΡ‹. ΠŸΡ€ΠΈΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ ΠΌΠ½ΠΎΠ³ΠΎΠΏΠΎΡ‚ΠΎΡ‡Π½ΠΎΠΉ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ β€” Π΅Ρ‰Π΅ ΠΎΠ΄ΠΈΠ½ способ Ρ€Π΅ΡˆΠ΅Π½ΠΈΡ Π΄Π°Π½Π½ΠΎΠΉ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΡ‹.

Π’ ΠΌΠ½ΠΎΠ³ΠΎΠΏΠΎΡ‚ΠΎΡ‡Π½ΠΎΠΌ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΈ графичСский ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΡΠΊΠΈΠΉ интСрфСйс выполняСтся Π² своСм собствСнном ΠΏΠΎΡ‚ΠΎΠΊΠ΅, Π° ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠ° осущСствляСтся Π² ΠΎΠ΄Π½ΠΎΠΌ ΠΈΠ»ΠΈ Π² Π½Π΅ΡΠΊΠΎΠ»ΡŒΠΊΠΈΡ… Π΄Ρ€ΡƒΠ³ΠΈΡ… ΠΏΠΎΡ‚ΠΎΠΊΠ°Ρ…. Π’ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Π΅ Ρ‚Π°ΠΊΠΈΠ΅ прилоТСния способны Ρ€Π΅Π°Π³ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Π½Π° дСйствия ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ Π΄Π°ΠΆΠ΅ ΠΏΡ€ΠΈ ΠΏΡ€ΠΎΠ΄ΠΎΠ»ΠΆΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΠΉ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠ΅. Π•Ρ‰Π΅ ΠΎΠ΄Π½ΠΈΠΌ прСимущСством ΠΌΠ½ΠΎΠ³ΠΎΠΏΠΎΡ‚ΠΎΡ‡Π½ΠΎΠΉ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ являСтся Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ Π² многопроцСссорных систСмах ΠΎΠ΄Π½ΠΎΠ²Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎ Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡ‚ΡŒ нСсколько ΠΏΠΎΡ‚ΠΎΠΊΠΎΠ² Π½Π° Ρ€Π°Π·Π½Ρ‹Ρ… процСссорах, увСличивая ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ.