12 monitoredApplication originalTextModifiedHolder |
12 monitoredApplication originalTextModifiedHolder |
13 languageTextModifiedHolder languageTextAcceptHolder |
13 languageTextModifiedHolder languageTextAcceptHolder |
14 inSingleFileMode lastExtractedProject lastLanguage |
14 inSingleFileMode lastExtractedProject lastLanguage |
15 lastSelectedKey autoAcceptHolder languageEditor |
15 lastSelectedKey autoAcceptHolder languageEditor |
16 selectedColIndexHolder exampleLanguageSelectionHolder |
16 selectedColIndexHolder exampleLanguageSelectionHolder |
17 exampleLanguageTextHolder' |
17 exampleLanguageTextHolder pastePreviousTranslationEnableHolder |
|
18 searchForSimilarTranslationEnableHolder' |
18 classVariableNames:'LastExtractedClass LastExtractedApplicationClass |
19 classVariableNames:'LastExtractedClass LastExtractedApplicationClass |
19 LastExtractedProject' |
20 LastExtractedProject' |
20 poolDictionaries:'' |
21 poolDictionaries:'' |
21 category:'Interface-UIPainter' |
22 category:'Interface-UIPainter' |
22 ! |
23 ! |
196 comboList: shownLanguages |
197 comboList: shownLanguages |
197 useIndex: false |
198 useIndex: false |
198 ) |
199 ) |
199 (TextEditorSpec |
200 (TextEditorSpec |
200 name: 'ExampleLanguageText' |
201 name: 'ExampleLanguageText' |
201 layout: (LayoutFrame 0 0 25 0 611 0 66 0) |
202 layout: (LayoutFrame 0 0 30 0 0 1 0 1) |
202 model: exampleLanguageTextHolder |
203 model: exampleLanguageTextHolder |
203 hasHorizontalScrollBar: true |
204 hasHorizontalScrollBar: true |
204 hasVerticalScrollBar: true |
205 hasVerticalScrollBar: true |
205 isReadOnly: true |
206 isReadOnly: true |
206 ) |
207 ) |
229 acceptChannel: languageTextAcceptHolder |
230 acceptChannel: languageTextAcceptHolder |
230 modifiedChannel: languageTextModifiedHolder |
231 modifiedChannel: languageTextModifiedHolder |
231 acceptCallBack: languageTextAccepted |
232 acceptCallBack: languageTextAccepted |
232 postBuildCallback: languageEditorBuilt: |
233 postBuildCallback: languageEditorBuilt: |
233 ) |
234 ) |
|
235 (ActionButtonSpec |
|
236 label: 'Paste Previous' |
|
237 name: 'pastePreviousTranslation' |
|
238 layout: (LayoutOrigin 0 0.83085250338295 0 0.03448275862069) |
|
239 translateLabel: true |
|
240 model: pastePreviousTranslationInLanguageText |
|
241 enableChannel: pastePreviousTranslationEnableHolder |
|
242 disabledLogo: 'Paste Previous' |
|
243 ) |
234 ) |
244 ) |
235 |
245 |
236 ) |
246 ) |
237 ) |
247 ) |
238 ) |
248 ) |
447 nil |
462 nil |
448 nil |
463 nil |
449 ) |
464 ) |
450 ! |
465 ! |
451 |
466 |
|
467 menuItemsEditLanguage |
|
468 "This resource specification was automatically generated |
|
469 by the MenuEditor of ST/X." |
|
470 |
|
471 "Do not manually edit this!! If it is corrupted, |
|
472 the MenuEditor may not be able to read the specification." |
|
473 |
|
474 " |
|
475 MenuEditor new openOnClass:Tools::InternationalLanguageTranslationEditor andSelector:#menu |
|
476 (Menu new fromLiteralArrayEncoding:(Tools::InternationalLanguageTranslationEditor menu)) startUp |
|
477 " |
|
478 |
|
479 <resource: #menu> |
|
480 |
|
481 ^ |
|
482 #(Menu |
|
483 ( |
|
484 (MenuItem |
|
485 enabled: pastePreviousTranslationEnableHolder |
|
486 label: 'Paste Previous Translation' |
|
487 itemValue: pastePreviousTranslationInLanguageText |
|
488 nameKey: pastePreviousTranslationInLanguageText |
|
489 translateLabel: true |
|
490 ) |
|
491 ) |
|
492 nil |
|
493 nil |
|
494 ) |
|
495 ! |
|
496 |
452 menuToolBar |
497 menuToolBar |
453 "This resource specification was automatically generated |
498 "This resource specification was automatically generated |
454 by the MenuEditor of ST/X." |
499 by the MenuEditor of ST/X." |
455 |
500 |
456 "Do not manually edit this!! If it is corrupted, |
501 "Do not manually edit this!! If it is corrupted, |
457 the MenuEditor may not be able to read the specification." |
502 the MenuEditor may not be able to read the specification." |
458 |
503 |
459 " |
504 " |
460 MenuEditor new openOnClass:InternationalLanguageTranslationEditor andSelector:#menuToolBar |
505 MenuEditor new openOnClass:Tools::InternationalLanguageTranslationEditor andSelector:#menuToolBar |
461 (Menu new fromLiteralArrayEncoding:(InternationalLanguageTranslationEditor menuToolBar)) startUp |
506 (Menu new fromLiteralArrayEncoding:(Tools::InternationalLanguageTranslationEditor menuToolBar)) startUp |
462 " |
507 " |
463 |
508 |
464 <resource: #menu> |
509 <resource: #menu> |
465 |
510 |
466 ^ |
511 ^ |
467 #(Menu |
512 #(Menu |
468 ( |
513 ( |
469 (MenuItem |
514 (MenuItem |
470 label: 'Save' |
515 label: 'Save' |
|
516 itemValue: menuSave |
471 translateLabel: true |
517 translateLabel: true |
472 labelImage: (ResourceRetriever XPToolbarIconLibrary saveImageIcon) |
518 labelImage: (ResourceRetriever XPToolbarIconLibrary saveImageIcon) |
473 ) |
519 ) |
474 (MenuItem |
520 (MenuItem |
475 label: '-' |
521 label: '-' |
568 rowSelectionIndex := self selectedKeyRow value. |
614 rowSelectionIndex := self selectedKeyRow value. |
569 rowSelectionIndex == 0 ifTrue:[^nil]. |
615 rowSelectionIndex == 0 ifTrue:[^nil]. |
570 ^ keyStringsToLanguageMappings keyAt:rowSelectionIndex. |
616 ^ keyStringsToLanguageMappings keyAt:rowSelectionIndex. |
571 ! ! |
617 ! ! |
572 |
618 |
|
619 !InternationalLanguageTranslationEditor methodsFor:'additionalFuncionalities'! |
|
620 |
|
621 searchForSimilarTranslation |
|
622 "Looks for a quite similar translation for the key and display a dialog with available options" |
|
623 |similarTranslationsAssociations selectedTranslation| |
|
624 |
|
625 self shouldSearchForSimilarTranslation ifFalse:[^self]. |
|
626 |
|
627 similarTranslationsAssociations := keyStringsToLanguageMappings searchForSimilarTranslation: self selectedKey in: self currentLanguage. |
|
628 similarTranslationsAssociations isEmpty ifTrue:[^self]. |
|
629 |
|
630 similarTranslationsAssociations := similarTranslationsAssociations associations inject: OrderedCollection new into:[:collection :association | |
|
631 collection detect:[:selectedAssociation | |
|
632 selectedAssociation value sameAs: association value] ifNone:[collection add: association]. |
|
633 collection]. |
|
634 selectedTranslation := Dialog |
|
635 choose:'Choose one if you consider itīs usefull to translate: |
|
636 ', |
|
637 '<', self selectedKey, '> ', |
|
638 self currentExampleLanguageText |
|
639 fromList: (similarTranslationsAssociations collect:[:each | '<', each key, '> ', each value]) |
|
640 values: (similarTranslationsAssociations collect:[:each | each value]) |
|
641 lines:10 |
|
642 cancel: nil. |
|
643 |
|
644 selectedTranslation notNil ifTrue:[self languageTextHolderValue: selectedTranslation]. |
|
645 ! ! |
|
646 |
573 !InternationalLanguageTranslationEditor methodsFor:'aspects'! |
647 !InternationalLanguageTranslationEditor methodsFor:'aspects'! |
574 |
648 |
575 autoAcceptHolder |
649 autoAcceptHolder |
576 autoAcceptHolder isNil ifTrue:[autoAcceptHolder := true asValue]. |
650 autoAcceptHolder isNil ifTrue:[autoAcceptHolder := true asValue]. |
577 ^ autoAcceptHolder |
651 ^ autoAcceptHolder |
640 languageTextAcceptHolder := false asValue. |
714 languageTextAcceptHolder := false asValue. |
641 ]. |
715 ]. |
642 ^ languageTextAcceptHolder. |
716 ^ languageTextAcceptHolder. |
643 ! |
717 ! |
644 |
718 |
645 languageTextAccepted |
|
646 |
|
647 self selectedKeyRow value: self selectedKeyRow value + 1. |
|
648 ! |
|
649 |
|
650 languageTextHolder |
719 languageTextHolder |
651 languageTextHolder isNil ifTrue:[ |
720 languageTextHolder isNil ifTrue:[ |
652 languageTextHolder := '' asValue. |
721 languageTextHolder := '' asValue. |
653 ]. |
722 ]. |
654 ^ languageTextHolder. |
723 ^ languageTextHolder. |
678 originalTextModifiedHolder |
747 originalTextModifiedHolder |
679 originalTextModifiedHolder isNil ifTrue:[ |
748 originalTextModifiedHolder isNil ifTrue:[ |
680 originalTextModifiedHolder := false asValue. |
749 originalTextModifiedHolder := false asValue. |
681 ]. |
750 ]. |
682 ^ originalTextModifiedHolder. |
751 ^ originalTextModifiedHolder. |
|
752 ! |
|
753 |
|
754 pastePreviousTranslationEnableHolder |
|
755 pastePreviousTranslationEnableHolder isNil ifTrue:[pastePreviousTranslationEnableHolder := false asValue]. |
|
756 ^ pastePreviousTranslationEnableHolder |
|
757 ! |
|
758 |
|
759 searchForSimilarTranslationEnableHolder |
|
760 searchForSimilarTranslationEnableHolder isNil |
|
761 ifTrue:[searchForSimilarTranslationEnableHolder := true asValue]. |
|
762 ^ searchForSimilarTranslationEnableHolder |
683 ! |
763 ! |
684 |
764 |
685 selectedKeyRow |
765 selectedKeyRow |
686 selectedKeyRow isNil ifTrue:[ |
766 selectedKeyRow isNil ifTrue:[ |
687 selectedKeyRow := ValueHolder new. |
767 selectedKeyRow := ValueHolder new. |
713 ^ stopApplicationIconVisibleHolder. |
794 ^ stopApplicationIconVisibleHolder. |
714 ! ! |
795 ! ! |
715 |
796 |
716 !InternationalLanguageTranslationEditor methodsFor:'change & update'! |
797 !InternationalLanguageTranslationEditor methodsFor:'change & update'! |
717 |
798 |
|
799 languageTextHolderValue: aString |
|
800 |
|
801 self languageTextHolder value: aString. |
|
802 self languageTextModifiedHolder value:true. |
|
803 ! |
|
804 |
718 update:something with:aParameter from:changedObject |
805 update:something with:aParameter from:changedObject |
719 changedObject == shownLanguages ifTrue:[ |
806 changedObject == shownLanguages ifTrue:[ |
720 self shownLanguagesChanged. |
807 self shownLanguagesChanged. |
721 ^ self. |
808 ^ self. |
722 ]. |
809 ]. |
725 ^ self. |
812 ^ self. |
726 ]. |
813 ]. |
727 changedObject == exampleLanguageSelectionHolder ifTrue:[ |
814 changedObject == exampleLanguageSelectionHolder ifTrue:[ |
728 self updateExampleLanguageText. |
815 self updateExampleLanguageText. |
729 ^ self. |
816 ^ self. |
730 ]. |
817 ]. |
|
818 changedObject == showMissingTranslationsOnly ifTrue:[ |
|
819 self showMissingTranslationsOnlyChanged. |
|
820 ^ self. |
|
821 ]. |
|
822 ! |
|
823 |
|
824 updateCopyPreviousTranslationButtonEnabled |
|
825 |
|
826 self pastePreviousTranslationEnableHolder value: self shouldCopyPreviousTranslationButtonBeEnabled |
731 ! |
827 ! |
732 |
828 |
733 updateExampleLanguageText |
829 updateExampleLanguageText |
734 |
830 |
735 self selectedKeyRow value isNil ifTrue:[^ self]. |
831 self selectedKeyRow value isNil ifTrue:[^ self]. |
744 put: self newLanguageText. |
840 put: self newLanguageText. |
745 ! |
841 ! |
746 |
842 |
747 updateLanguageAndKeySelection |
843 updateLanguageAndKeySelection |
748 |
844 |
749 |colSelectionIndex language| |
|
750 |
|
751 colSelectionIndex := dataSetView selectedColIndex. |
|
752 language := colSelectionIndex > 1 ifTrue:[ shownLanguages at:colSelectionIndex-1 ] ifFalse:nil. |
|
753 |
|
754 self originalTextHolder value: self selectedKey. |
845 self originalTextHolder value: self selectedKey. |
755 self languageTextHolder value: (self languageTextFromSelectedKeyFor: language). |
846 self languageTextHolder value: (self languageTextFromSelectedKeyFor: self currentLanguage). |
756 lastLanguage := language. |
847 lastLanguage := self currentLanguage. |
757 lastSelectedKey := self selectedKey. |
848 lastSelectedKey := self selectedKey. |
758 ! |
849 ! |
759 |
850 |
760 updateLanguageTextModification |
851 updateLanguageTextModification |
761 self languageTextModifiedHolder value ifTrue:[ |
852 self languageTextModifiedHolder value ifTrue:[ |
788 ]. |
879 ]. |
789 ! ! |
880 ! ! |
790 |
881 |
791 !InternationalLanguageTranslationEditor methodsFor:'dialogs'! |
882 !InternationalLanguageTranslationEditor methodsFor:'dialogs'! |
792 |
883 |
793 requestEncoderString |
884 requestEncoderDialog |
794 |
885 |
795 ^Dialog request:'Enter the encoder : '. |
886 |box val characterCollection| |
|
887 |
|
888 val := '' asValue. |
|
889 box := Dialog new. |
|
890 (box addTextLabel:'Select or write the encoder') adjust:#left. |
|
891 box addVerticalSpace. |
|
892 characterCollection := CharacterEncoder supportedExternalEncodings |
|
893 inject: OrderedCollection new |
|
894 into:[:collection :each | |
|
895 collection add: each first; |
|
896 yourself]. |
|
897 (box addComboBoxOn:val) list: characterCollection. |
|
898 box addOkButton. |
|
899 box open. |
|
900 ^val value |
|
901 ! |
|
902 |
|
903 requestEncoderStringFor: lang |
|
904 "Returns an encoder string and updates the language's info" |
|
905 |encoderString encoder| |
|
906 encoderString := self requestEncoderDialog. |
|
907 encoderString notEmpty ifTrue:[ |
|
908 encoder := CharacterEncoder encoderFor: encoderString ifAbsent:nil. |
|
909 encoder notNil ifTrue:[keyStringsToLanguageMappings atLanguage: lang putEncoder: encoder.]. |
|
910 ]. |
|
911 ^encoderString |
796 ! |
912 ! |
797 |
913 |
798 requestFilename |
914 requestFilename |
799 |
915 |
800 |aFilename| |
916 |aFilename| |
803 requestFileName:'Name of resource file:' |
919 requestFileName:'Name of resource file:' |
804 default:nil |
920 default:nil |
805 pattern:'*.rs'. |
921 pattern:'*.rs'. |
806 |
922 |
807 aFilename isEmptyOrNil ifTrue:[^ nil ]. |
923 aFilename isEmptyOrNil ifTrue:[^ nil ]. |
|
924 ^aFilename asFilename |
|
925 ! |
|
926 |
|
927 requestFilenameFor: lang |
|
928 "Returns a filename to save the language resource and updates the language's info" |
|
929 |aFilename| |
|
930 |
|
931 aFilename := Dialog |
|
932 requestFileName:'Name of resource file to save ', lang asString, ' :' |
|
933 default:nil |
|
934 pattern:'*.rs'. |
|
935 |
|
936 aFilename isEmptyOrNil ifTrue:[^ nil ]. |
|
937 keyStringsToLanguageMappings atLanguage: lang putFilename: aFilename. |
808 ^aFilename asFilename |
938 ^aFilename asFilename |
809 ! |
939 ! |
810 |
940 |
811 requestLanguage |
941 requestLanguage |
812 ^ Dialog |
942 ^ Dialog |
864 |
994 |
865 addTranslation |
995 addTranslation |
866 |key index| |
996 |key index| |
867 |
997 |
868 key := Dialog request:'New Key:'. |
998 key := Dialog request:'New Key:'. |
|
999 key isEmpty ifTrue:[^self]. |
869 (keyStringsToLanguageMappings includesKey:key) ifFalse:[ |
1000 (keyStringsToLanguageMappings includesKey:key) ifFalse:[ |
870 keyStringsToLanguageMappings addKey:key. |
1001 keyStringsToLanguageMappings addKey:key. |
871 modified := true. |
1002 modified := true. |
872 ]. |
1003 ]. |
873 index := keyStringsToLanguageMappings indexOfKey:key. |
1004 index := keyStringsToLanguageMappings indexOfKey:key. |
874 |
1005 self selectedKeyRow value:index |
875 self selectedKeyRow value:index |
|
876 ! |
1006 ! |
877 |
1007 |
878 extractTranslationsFromClass |
1008 extractTranslationsFromClass |
879 |aClass newTranslations| |
1009 |aClass newTranslations| |
880 |
1010 |
1387 "Returns the language text corresponding for the current selected key and the example language selection" |
1517 "Returns the language text corresponding for the current selected key and the example language selection" |
1388 |
1518 |
1389 ^self languageTextFromSelectedKeyFor: self exampleLanguageSelectionHolder value |
1519 ^self languageTextFromSelectedKeyFor: self exampleLanguageSelectionHolder value |
1390 ! |
1520 ! |
1391 |
1521 |
|
1522 currentLanguage |
|
1523 |
|
1524 |colSelectionIndex | |
|
1525 |
|
1526 colSelectionIndex := dataSetView selectedColIndex. |
|
1527 ^colSelectionIndex > 1 ifTrue:[ shownLanguages at:colSelectionIndex-1 ] ifFalse:nil. |
|
1528 ! |
|
1529 |
1392 exampleLanguageByDefault |
1530 exampleLanguageByDefault |
1393 |
1531 |
1394 ^self shownLanguages isEmpty |
1532 ^self shownLanguages isEmpty |
1395 ifTrue:[nil] |
1533 ifTrue:[nil] |
1396 ifFalse:[self shownLanguages first] |
1534 ifFalse:[self shownLanguages first] |
1397 ! |
1535 ! |
1398 |
1536 |
|
1537 hasFirstRowSelection |
|
1538 self selectedKeyRow isNil ifTrue:[^false]. |
|
1539 ^ self selectedKeyRow value > 1 |
|
1540 ! |
|
1541 |
|
1542 hasLanguageSelection |
|
1543 dataSetView selectedColIndex isNil ifTrue:[^false]. |
|
1544 ^ dataSetView selectedColIndex > 1 |
|
1545 ! |
|
1546 |
1399 hasUnsavedChanges |
1547 hasUnsavedChanges |
1400 ^ modified |
1548 ^ modified |
1401 ! |
1549 ! |
1402 |
1550 |
|
1551 isSearchForSimilarTranslationEnabled |
|
1552 |
|
1553 ^self searchForSimilarTranslationEnableHolder value |
|
1554 ! |
|
1555 |
|
1556 languageTextFromKey: aKeyIndex for: language |
|
1557 "Returns the language text corresponding for the aKeyIndex and the received language" |
|
1558 |
|
1559 language isNil ifTrue:[^'']. |
|
1560 ^keyStringsToLanguageMappings at: aKeyIndex language:language. |
|
1561 ! |
|
1562 |
1403 languageTextFromSelectedKeyFor: language |
1563 languageTextFromSelectedKeyFor: language |
1404 "Returns the language text corresponding for the current selected key and the received language" |
1564 "Returns the language text corresponding for the current selected key and the received language" |
1405 |
1565 |
1406 language isNil ifTrue:[^'']. |
1566 ^self languageTextFromKey: self selectedKey for: language |
1407 ^keyStringsToLanguageMappings at: self selectedKey language:language. |
1567 ! |
|
1568 |
|
1569 shouldCopyPreviousTranslationButtonBeEnabled |
|
1570 ^ self hasLanguageSelection |
|
1571 and:[self hasFirstRowSelection] |
|
1572 ! |
|
1573 |
|
1574 shouldSearchForSimilarTranslation |
|
1575 |
|
1576 self isSearchForSimilarTranslationEnabled ifFalse:[^false]. |
|
1577 (self languageTextHolder value notNil and:[self languageTextHolder value notEmpty]) ifTrue:[^false]. |
|
1578 (self hasLanguageSelection and:[self selectedKeyRow notNil]) ifFalse:[^false]. |
|
1579 ^true |
1408 ! ! |
1580 ! ! |
1409 |
1581 |
1410 !InternationalLanguageTranslationEditor methodsFor:'read/write resourceFile'! |
1582 !InternationalLanguageTranslationEditor methodsFor:'read/write resourceFile'! |
1411 |
1583 |
1412 printEditingWarningOn: aStream |
1584 printEditingWarningOn: aStream |
1418 nextPutAll: '; this file contains national characters'; |
1590 nextPutAll: '; this file contains national characters'; |
1419 cr; |
1591 cr; |
1420 nextPutAll: '; DONT EDIT this file with an old vi !!'; |
1592 nextPutAll: '; DONT EDIT this file with an old vi !!'; |
1421 cr; |
1593 cr; |
1422 nextPutAll: ';'; |
1594 nextPutAll: ';'; |
|
1595 cr; |
1423 cr. |
1596 cr. |
1424 ! |
1597 ! |
1425 |
1598 |
1426 printEncoderFor: lang on: aStream |
1599 printEncoderFor: lang on: aStream |
1427 |characterEncoder encoderString| |
1600 |characterEncoder encoderString| |
1428 |
1601 |
1429 characterEncoder := keyStringsToLanguageMappings encoderAt: lang. |
1602 characterEncoder := keyStringsToLanguageMappings encoderAt: lang. |
1430 encoderString := characterEncoder isNil |
1603 encoderString := characterEncoder isNil |
1431 ifTrue:[self requestEncoderString] |
1604 ifTrue:[self requestEncoderStringFor: lang] |
1432 ifFalse:[characterEncoder nameOfEncoding printString]. |
1605 ifFalse:[characterEncoder nameOfEncoding printString]. |
1433 |
1606 |
1434 aStream nextPutAll: '#encoding'; |
1607 aStream nextPutAll: '#encoding'; |
1435 space; |
1608 space; |
1436 nextPutAll: encoderString; |
1609 nextPutAll: encoderString; |
1445 self printLanguageMappingsFor: lang on: aStream. |
1618 self printLanguageMappingsFor: lang on: aStream. |
1446 ! |
1619 ! |
1447 |
1620 |
1448 printLanguageMappingsFor: lang on: aStream |
1621 printLanguageMappingsFor: lang on: aStream |
1449 |
1622 |
1450 |languageMappings maxKeySize| |
1623 |orderedAssociations maxKeySize| |
1451 |
1624 |
1452 languageMappings := keyStringsToLanguageMappings atLanguage: lang. |
1625 orderedAssociations := keyStringsToLanguageMappings orderedLanguageMappingsAssociationsFor: lang. |
1453 |
1626 |
1454 maxKeySize := keyStringsToLanguageMappings maxKeySizeForLanguage: lang. |
1627 maxKeySize := keyStringsToLanguageMappings maxKeySizeForLanguage: lang. |
1455 maxKeySize := maxKeySize + 10. "adds the separator between key and value" |
1628 |
1456 |
1629 orderedAssociations do:[:association | |
1457 languageMappings keysAndValuesDo:[:key :value | |
1630 aStream nextPutAll: (association key storeString paddedTo: maxKeySize) ; |
1458 aStream nextPutAll: (key storeString paddedTo: maxKeySize) ; |
1631 nextPutAll: (String new: 10); |
1459 nextPutAll: value storeString; |
1632 nextPutAll: association value storeString; |
1460 cr. |
1633 cr. |
1461 ]. |
1634 ]. |
1462 ! |
1635 ! |
1463 |
1636 |
1464 readResourceFile:aFilename asLanguage:lang |
1637 readResourceFile:aFilename asLanguage:lang |
1508 |
1681 |
1509 saveResourceFile: aFilename for: lang |
1682 saveResourceFile: aFilename for: lang |
1510 |
1683 |
1511 |aStream | |
1684 |aStream | |
1512 |
1685 |
1513 aStream := FileStream fileNamed: aFilename. |
1686 keyStringsToLanguageMappings atLanguage: lang putFilename: aFilename. |
|
1687 aStream := FileStream newFileNamed: aFilename. |
1514 self printLanguage: lang on: aStream. |
1688 self printLanguage: lang on: aStream. |
1515 aStream flush; |
1689 aStream flush; |
1516 close. |
1690 close. |
1517 DialogBox information: 'The resource file for the language ', lang printString storeString, ' was saved in the file: ', aFilename nameString |
1691 DialogBox information: 'The resource file for the language ', lang printString storeString, ' was saved in the file: ', aFilename nameString |
1518 ! ! |
1692 ! ! |
1560 exampleLanguageSelectionChanged |
1734 exampleLanguageSelectionChanged |
1561 |
1735 |
1562 self updateExampleLanguageText. |
1736 self updateExampleLanguageText. |
1563 ! |
1737 ! |
1564 |
1738 |
|
1739 languageTextAccepted |
|
1740 |nextRowIndex| |
|
1741 keyStringsToLanguageMappings size = self selectedKeyRow value |
|
1742 ifTrue:[ self updateLanguageTextModification.] |
|
1743 ifFalse:[ |
|
1744 nextRowIndex := self selectedKeyRow value + 1. |
|
1745 self selectedKeyRow value: nextRowIndex]. |
|
1746 ! |
|
1747 |
|
1748 pastePreviousTranslationInLanguageText |
|
1749 "Obtain the text from the previous translation and paste it into the languageTextEditor" |
|
1750 |
|
1751 | previousLanguageText previousLanguageRow| |
|
1752 |
|
1753 previousLanguageRow := dataSetView at:self selectedKeyRow value - 1 |
|
1754 ifAbsent:[^self]. |
|
1755 previousLanguageText := previousLanguageRow atLanguage: self currentLanguage. |
|
1756 languageEditor selectAll. |
|
1757 languageEditor pasteOrReplace:previousLanguageText. |
|
1758 self languageTextModifiedHolder value:true. |
|
1759 ! |
|
1760 |
1565 selectionChanged |
1761 selectionChanged |
1566 |
1762 |
1567 self updateOriginalTextModification. |
1763 self updateOriginalTextModification. |
1568 self updateLanguageTextModification. |
1764 self updateLanguageTextModification. |
1569 self updateLanguageAndKeySelection. |
1765 self updateLanguageAndKeySelection. |
1570 self updateExampleLanguageText. |
1766 self updateExampleLanguageText. |
1571 |
1767 |
|
1768 self updateCopyPreviousTranslationButtonEnabled. |
|
1769 |
1572 self originalTextModifiedHolder value:false. |
1770 self originalTextModifiedHolder value:false. |
1573 self languageTextModifiedHolder value:false. |
1771 self languageTextModifiedHolder value:false. |
|
1772 |
|
1773 self searchForSimilarTranslation. |
|
1774 ! |
|
1775 |
|
1776 showMissingTranslationsOnlyChanged |
1574 ! |
1777 ! |
1575 |
1778 |
1576 shownLanguagesChanged |
1779 shownLanguagesChanged |
1577 self keyStringAndLanguageSelectionTableColumnDescriptionHolder |
1780 self keyStringAndLanguageSelectionTableColumnDescriptionHolder |
1578 value:(self keyStringAndLanguageSelectionTableColumnDescription). |
1781 value:(self keyStringAndLanguageSelectionTableColumnDescription). |
1794 ! |
2002 ! |
1795 |
2003 |
1796 maxKeySizeForLanguage: lang |
2004 maxKeySizeForLanguage: lang |
1797 |
2005 |
1798 ^(self atLanguage: lang) keys inject: 0 into:[:maxSize :each | |
2006 ^(self atLanguage: lang) keys inject: 0 into:[:maxSize :each | |
1799 maxSize < each size |
2007 (maxSize < each size and:[each size < 100]) |
1800 ifTrue:[each size] |
2008 ifTrue:[each size] |
1801 ifFalse:[maxSize].]. |
2009 ifFalse:[maxSize].]. |
|
2010 ! |
|
2011 |
|
2012 searchForSimilarTranslation: aKey in: language |
|
2013 "Returns a collection of translation associations that corresponds to a quite similar key comparing with aKey" |
|
2014 |similarAssociations| |
|
2015 similarAssociations:= |
|
2016 (self mappingAtLanguage: language) associationsSelect:[:each | |
|
2017 ((each key sameAs: aKey) |
|
2018 or:[(aKey asUppercase startsWith: each key asUppercase) |
|
2019 or:[((each key asUppercase levenshteinTo: aKey asUppercase)/ each key size) < 0.3 |
|
2020 ]]) |
|
2021 and:[each value notNil |
|
2022 and:[each value notEmpty]] |
|
2023 ]. |
|
2024 ^similarAssociations |
1802 ! ! |
2025 ! ! |
1803 |
2026 |
1804 !InternationalLanguageTranslationEditor::LanguageMappingRow methodsFor:'accessing'! |
2027 !InternationalLanguageTranslationEditor::LanguageMappingRow methodsFor:'accessing'! |
1805 |
2028 |
1806 atLanguage:language |
2029 atLanguage:language |