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 pastePreviousTranslationEnableHolder |
17 exampleLanguageTextHolder pastePreviousTranslationEnableHolder |
18 searchForSimilarTranslationEnableHolder alwaysWriteUTF8Holder' |
18 searchForSimilarTranslationEnableHolder alwaysWriteUTF8Holder |
|
19 lastNameSpace' |
19 classVariableNames:'LastExtractedClass LastExtractedApplicationClass |
20 classVariableNames:'LastExtractedClass LastExtractedApplicationClass |
20 LastExtractedProject' |
21 LastExtractedProject' |
21 poolDictionaries:'' |
22 poolDictionaries:'' |
22 category:'Interface-UIPainter' |
23 category:'Interface-UIPainter' |
23 ! |
24 ! |
134 (SpecCollection |
134 (SpecCollection |
135 collection: ( |
135 collection: ( |
136 (DataSetSpec |
136 (DataSetSpec |
137 name: 'KeyStringAndLanguageSelectionTable' |
137 name: 'KeyStringAndLanguageSelectionTable' |
138 model: selectedKeyRow |
138 model: selectedKeyRow |
|
139 menu: keyStringAndLanguageSelectionTableMenu |
139 hasHorizontalScrollBar: true |
140 hasHorizontalScrollBar: true |
140 hasVerticalScrollBar: true |
141 hasVerticalScrollBar: true |
141 dataList: keyStringAndLanguageSelectionTable |
142 dataList: keyStringAndLanguageSelectionTable |
142 columnHolder: keyStringAndLanguageSelectionTableColumnDescriptionHolder |
143 columnHolder: keyStringAndLanguageSelectionTableColumnDescriptionHolder |
143 beDependentOfRows: true |
144 beDependentOfRows: true |
261 ) |
262 ) |
262 ! ! |
263 ! ! |
263 |
264 |
264 !InternationalLanguageTranslationEditor class methodsFor:'menu specs'! |
265 !InternationalLanguageTranslationEditor class methodsFor:'menu specs'! |
265 |
266 |
|
267 keyStringAndLanguageSelectionTableMenu |
|
268 "This resource specification was automatically generated |
|
269 by the MenuEditor of ST/X." |
|
270 |
|
271 "Do not manually edit this!! If it is corrupted, |
|
272 the MenuEditor may not be able to read the specification." |
|
273 |
|
274 " |
|
275 MenuEditor new openOnClass:Tools::InternationalLanguageTranslationEditor andSelector:#keyStringAndLanguageSelectionTableMenu |
|
276 (Menu new fromLiteralArrayEncoding:(Tools::InternationalLanguageTranslationEditor keyStringAndLanguageSelectionTableMenu)) startUp |
|
277 " |
|
278 |
|
279 <resource: #menu> |
|
280 |
|
281 ^ |
|
282 #(Menu |
|
283 ( |
|
284 (MenuItem |
|
285 label: 'Current NameSpace:' |
|
286 itemValue: changeLastNameSpace |
|
287 translateLabel: true |
|
288 ) |
|
289 (MenuItem |
|
290 label: 'Search String in Current NameSpace:' |
|
291 itemValue: searchStringInLastNameSpace |
|
292 translateLabel: true |
|
293 ) |
|
294 ) |
|
295 nil |
|
296 nil |
|
297 ) |
|
298 ! |
|
299 |
266 mainMenu |
300 mainMenu |
267 "This resource specification was automatically generated |
301 "This resource specification was automatically generated |
268 by the MenuEditor of ST/X." |
302 by the MenuEditor of ST/X." |
269 |
303 |
270 "Do not manually edit this!! If it is corrupted, |
304 "Do not manually edit this!! If it is corrupted, |
610 |
657 |
611 !InternationalLanguageTranslationEditor methodsFor:'accessing'! |
658 !InternationalLanguageTranslationEditor methodsFor:'accessing'! |
612 |
659 |
613 newLanguageText |
660 newLanguageText |
614 "/ languageEditor accept |
661 "/ languageEditor accept |
615 ^self languageTextHolder value isNil |
662 ^self languageTextHolder value isNil |
616 ifTrue:[''] |
663 ifTrue:[''] |
617 ifFalse:[self languageTextHolder value asCollectionOfLines first.] |
664 ifFalse:[self languageTextHolder value asCollectionOfLines first.] |
618 ! |
665 ! |
619 |
666 |
620 selectedKey |
667 selectedKey |
621 "Returns the current selected key if there is one row seleted. Otherwise, returns nil" |
668 "Returns the current selected key if there is one row seleted. Otherwise, returns nil" |
622 |rowSelectionIndex | |
669 |rowSelectionIndex | |
623 |
670 |
|
671 keyStringsToLanguageMappings isNil ifTrue:[^nil]. |
|
672 self selectedKeyRow value isNil ifTrue:[^nil]. |
624 rowSelectionIndex := self selectedKeyRow value. |
673 rowSelectionIndex := self selectedKeyRow value. |
625 rowSelectionIndex == 0 ifTrue:[^nil]. |
674 rowSelectionIndex == 0 ifTrue:[^nil]. |
626 ^ keyStringsToLanguageMappings keyAt:rowSelectionIndex. |
675 ^ keyStringsToLanguageMappings keyAt:rowSelectionIndex. |
627 ! ! |
676 ! ! |
628 |
677 |
629 !InternationalLanguageTranslationEditor methodsFor:'additionalFuncionalities'! |
678 !InternationalLanguageTranslationEditor methodsFor:'additionalFuncionalities'! |
630 |
679 |
631 searchForSimilarTranslation |
680 searchForSimilarTranslation |
632 "Looks for a quite similar translation for the key and display a dialog with available options" |
681 "Looks for a quite similar translation for the key and display a dialog with available options" |
633 |similarTranslationsAssociations selectedTranslation| |
682 |similarTranslationsAssociations selectedTranslation| |
634 |
683 |
635 self shouldSearchForSimilarTranslation ifFalse:[^self]. |
684 self shouldSearchForSimilarTranslation ifFalse:[^self]. |
636 |
685 |
637 similarTranslationsAssociations := keyStringsToLanguageMappings searchForSimilarTranslation: self selectedKey in: self currentLanguage. |
686 similarTranslationsAssociations := keyStringsToLanguageMappings searchForSimilarTranslation: self selectedKey in: self currentLanguage. |
638 similarTranslationsAssociations isEmpty ifTrue:[^self]. |
687 similarTranslationsAssociations isEmpty ifTrue:[^self]. |
639 |
688 |
640 similarTranslationsAssociations := similarTranslationsAssociations associations inject: OrderedCollection new into:[:collection :association | |
689 similarTranslationsAssociations := similarTranslationsAssociations associations inject: OrderedCollection new into:[:collection :association | |
641 collection detect:[:selectedAssociation | |
690 collection detect:[:selectedAssociation | |
642 selectedAssociation value sameAs: association value] ifNone:[collection add: association]. |
691 selectedAssociation value sameAs: association value] ifNone:[collection add: association]. |
643 collection]. |
692 collection]. |
644 selectedTranslation := Dialog |
693 selectedTranslation := Dialog |
645 choose:'Choose one if you consider itīs usefull to translate: |
694 choose:'Choose one if you consider itīs usefull to translate: |
646 ', |
695 ', |
647 '<', self selectedKey, '> ', |
696 '<', self selectedKey, '> ', (self currentExampleLanguageText ifNil:['']) |
648 self currentExampleLanguageText |
697 fromList: (similarTranslationsAssociations collect:[:each | '<', each key, '> ', each value]) |
649 fromList: (similarTranslationsAssociations collect:[:each | '<', each key, '> ', each value]) |
698 values: (similarTranslationsAssociations collect:[:each | each value]) |
650 values: (similarTranslationsAssociations collect:[:each | each value]) |
699 lines:10 |
651 lines:10 |
700 cancel: nil. |
652 cancel: nil. |
701 |
653 |
702 selectedTranslation notNil ifTrue:[self languageTextHolderValue: selectedTranslation]. |
654 selectedTranslation notNil ifTrue:[self languageTextHolderValue: selectedTranslation]. |
|
655 ! ! |
703 ! ! |
656 |
704 |
657 !InternationalLanguageTranslationEditor methodsFor:'aspects'! |
705 !InternationalLanguageTranslationEditor methodsFor:'aspects'! |
658 |
706 |
659 alwaysWriteUTF8Holder |
707 alwaysWriteUTF8Holder |
873 ]. |
921 ]. |
874 ! |
922 ! |
875 |
923 |
876 updateOriginalTextModification |
924 updateOriginalTextModification |
877 |
925 |
878 |answer| |
926 |answer| |
879 |
927 |
880 self originalTextModifiedHolder value ifTrue:[ |
928 self originalTextModifiedHolder value ifTrue:[ |
881 answer := OptionBox |
929 answer := OptionBox |
882 request:'Accept changed original text (key) ?' |
930 request:'Accept changed original text (key) ?' |
883 label:'Original text (key) changed' |
931 label:'Original text (key) changed' |
884 image:(WarningBox iconBitmap) |
932 image:(WarningBox iconBitmap) |
885 buttonLabels:#('Cancel' 'Accept' 'Accept As New') |
933 buttonLabels:#('Cancel' 'Accept' 'Accept As New') |
886 values:#(nil #accept #acceptAsNew) |
934 values:#(nil #accept #acceptAsNew) |
887 default:#acceptAsNew. |
935 default:#acceptAsNew. |
888 |
936 |
889 answer isNil ifTrue:[^ self originalTextModifiedHolder value:false. ]. |
937 answer isNil ifTrue:[^ self originalTextModifiedHolder value:false. ]. |
890 answer == #accept ifTrue:[ |
938 answer == #accept ifTrue:[ |
891 self halt. ]. |
939 self halt. ]. |
892 answer == #acceptAsNew ifTrue:[ |
940 answer == #acceptAsNew ifTrue:[ |
893 self halt. ]. |
941 self halt. ]. |
894 ]. |
942 ]. |
895 ! ! |
943 ! ! |
896 |
944 |
897 !InternationalLanguageTranslationEditor methodsFor:'dialogs'! |
945 !InternationalLanguageTranslationEditor methodsFor:'dialogs'! |
898 |
946 |
899 requestEncoderDialog |
947 requestEncoderDialog |
1010 addTranslation |
1058 addTranslation |
1011 |key index| |
1059 |key index| |
1012 |
1060 |
1013 key := Dialog request:'New Key:'. |
1061 key := Dialog request:'New Key:'. |
1014 key isEmpty ifTrue:[^self]. |
1062 key isEmpty ifTrue:[^self]. |
1015 (keyStringsToLanguageMappings includesKey:key) ifFalse:[ |
1063 (self includesKey:key) ifFalse:[ |
1016 keyStringsToLanguageMappings addKey:key. |
1064 keyStringsToLanguageMappings addKey:key. |
1017 modified := true. |
1065 modified := true. |
1018 ]. |
1066 ]. |
1019 index := keyStringsToLanguageMappings indexOfKey:key. |
1067 index := keyStringsToLanguageMappings indexOfKey:key. |
1020 self selectedKeyRow value:index |
1068 self selectedKeyRow value:index |
|
1069 ! |
|
1070 |
|
1071 changeLastNameSpace |
|
1072 |
|
1073 |nameSpace defaultNameSpace| |
|
1074 |
|
1075 lastNameSpace notNil ifTrue:[defaultNameSpace := lastNameSpace name]. |
|
1076 nameSpace := Dialog requestNameSpace:'NameSpace:' title:'Search String in Name Space:' initialAnswer:defaultNameSpace. |
|
1077 nameSpace isNil ifTrue:[^self]. |
|
1078 nameSpace := Smalltalk at:nameSpace asSymbol. |
|
1079 nameSpace isNil ifTrue:[ |
|
1080 ^Dialog information:(resources string:'No such nameSpace exists.?') |
|
1081 ]. |
|
1082 lastNameSpace := nameSpace. |
1021 ! |
1083 ! |
1022 |
1084 |
1023 extractTranslationsFromClass |
1085 extractTranslationsFromClass |
1024 |aClass newTranslations| |
1086 |aClass newTranslations| |
1025 |
1087 |
1030 aClass isNil ifTrue:[^ self ]. |
1092 aClass isNil ifTrue:[^ self ]. |
1031 |
1093 |
1032 lastExtractedClass := LastExtractedClass := aClass. |
1094 lastExtractedClass := LastExtractedClass := aClass. |
1033 |
1095 |
1034 newTranslations := self extractTranslationsFromClass:aClass. |
1096 newTranslations := self extractTranslationsFromClass:aClass. |
|
1097 self addAllTranslations:newTranslations. |
|
1098 ! |
|
1099 |
|
1100 extractTranslationsFromNameSpace |
|
1101 |
|
1102 |newTranslations| |
|
1103 |
|
1104 self changeLastNameSpace. |
|
1105 lastNameSpace isNil ifTrue:[^self.]. |
|
1106 newTranslations := OrderedCollection new. |
|
1107 lastNameSpace allClassesDo:[:eachClass | |
|
1108 newTranslations addAll:( self extractTranslationsFromClass:eachClass theNonMetaclass). |
|
1109 ]. |
1035 self addAllTranslations:newTranslations. |
1110 self addAllTranslations:newTranslations. |
1036 ! |
1111 ! |
1037 |
1112 |
1038 extractTranslationsFromProject |
1113 extractTranslationsFromProject |
1039 |box projectID newTranslations| |
1114 |box projectID newTranslations| |
1065 ]. |
1140 ]. |
1066 |
1141 |
1067 self addAllTranslations:newTranslations. |
1142 self addAllTranslations:newTranslations. |
1068 ! |
1143 ! |
1069 |
1144 |
|
1145 inspectCanvasMissingStrings |
|
1146 |
|
1147 |spec nameSpace missingStrings| |
|
1148 |
|
1149 missingStrings := OrderedCollection new. |
|
1150 nameSpace := Dialog requestNameSpace:'NameSpace:' title:'Specify NameSpace to look for missing strings' initialAnswer:nil. |
|
1151 nameSpace := Smalltalk at:nameSpace asSymbol. |
|
1152 nameSpace isNil ifTrue:[ |
|
1153 ^Dialog information:(resources string:'No such nameSpace exists.?') |
|
1154 ]. |
|
1155 |
|
1156 nameSpace allClassesDo:[:cls | |
|
1157 cls theMetaclass methodsDo:[:m | |
|
1158 m hasResource ifTrue:[ |
|
1159 (m resources includesKey:#canvas) ifTrue:[ |
|
1160 spec := (cls perform:m selector) decodeAsLiteralArray. |
|
1161 spec do:[:eachComponent | |
|
1162 eachComponent translationKeysDo:[:k | |
|
1163 (self includesKey: k) ifFalse:[ |
|
1164 missingStrings add: k. |
|
1165 Transcript showCR: k storeString, ' ', m printString]] |
|
1166 ] |
|
1167 ] |
|
1168 ] |
|
1169 ] |
|
1170 ]. |
|
1171 missingStrings asSet inspect |
|
1172 ! |
|
1173 |
1070 menuNew |
1174 menuNew |
1071 modified ifTrue:[ |
1175 modified ifTrue:[ |
1072 (Dialog |
1176 (Dialog |
1073 confirm:(resources stringWithCRs:'Modified translations have not been changed.\\Create new translations set anyway ?') |
1177 confirm:(resources stringWithCRs:'Modified translations have not been changed.\\Create new translations set anyway ?') |
1074 default:false) ifFalse:[^ self]. |
1178 default:false) ifFalse:[^ self]. |
1224 app closeRequest. |
1332 app closeRequest. |
1225 self stopApplicationIconVisibleHolder value:false. |
1333 self stopApplicationIconVisibleHolder value:false. |
1226 monitoredApplication := nil. |
1334 monitoredApplication := nil. |
1227 ]. |
1335 ]. |
1228 ] fork. |
1336 ] fork. |
|
1337 ! |
|
1338 |
|
1339 searchStringInLastNameSpace |
|
1340 |
|
1341 |selectedKey browser| |
|
1342 |
|
1343 selectedKey := self selectedKey. |
|
1344 selectedKey isNil ifTrue:[^Dialog information: 'No selected key']. |
|
1345 browser := NewSystemBrowser new "open". |
|
1346 browser allButOpen. |
|
1347 browser lastSearchPatterns first = selectedKey ifFalse:[ |
|
1348 browser lastSearchPatterns addFirst: selectedKey |
|
1349 ]. |
|
1350 lastNameSpace isNil ifTrue:[ |
|
1351 self changeLastNameSpace. |
|
1352 ]. |
|
1353 lastNameSpace notNil ifTrue:[ |
|
1354 "/ browser navigationState selectedClasses value: lastNameSpace allClasses. |
|
1355 browser navigationState nameSpaceFilter value: (OrderedCollection with:lastNameSpace name). |
|
1356 browser navigationState selectedNamespaces value: (OrderedCollection with:lastNameSpace name). |
|
1357 ]. |
|
1358 self withWaitCursorDo:[ |
|
1359 browser browseMenuMethodsWithString |
|
1360 ]. |
1229 ! ! |
1361 ! ! |
1230 |
1362 |
1231 !InternationalLanguageTranslationEditor methodsFor:'menus dynamic'! |
1363 !InternationalLanguageTranslationEditor methodsFor:'menus dynamic'! |
1232 |
1364 |
1233 disableLanguageDisplayFor:lang |
1365 disableLanguageDisplayFor:lang |
1534 ^self languageTextFromSelectedKeyFor: self exampleLanguageSelectionHolder value |
1666 ^self languageTextFromSelectedKeyFor: self exampleLanguageSelectionHolder value |
1535 ! |
1667 ! |
1536 |
1668 |
1537 currentLanguage |
1669 currentLanguage |
1538 |
1670 |
1539 |colSelectionIndex | |
1671 |colSelectionIndex | |
1540 |
1672 |
1541 colSelectionIndex := dataSetView selectedColIndex. |
1673 colSelectionIndex := dataSetView selectedColIndex. |
1542 ^colSelectionIndex > 1 ifTrue:[ shownLanguages at:colSelectionIndex-1 ] ifFalse:nil. |
1674 ^colSelectionIndex > 1 ifTrue:[ shownLanguages at:colSelectionIndex-1 ] ifFalse:nil. |
1543 ! |
1675 ! |
1544 |
1676 |
1545 exampleLanguageByDefault |
1677 exampleLanguageByDefault |
1546 |
1678 |
1547 ^self shownLanguages isEmpty |
1679 ^self shownLanguages isEmpty |
1548 ifTrue:[nil] |
1680 ifTrue:[nil] |
1549 ifFalse:[self shownLanguages first] |
1681 ifFalse:[self shownLanguages first] |
1550 ! |
1682 ! |
1551 |
1683 |
1552 hasFirstRowSelection |
1684 hasFirstRowSelection |
1553 self selectedKeyRow isNil ifTrue:[^false]. |
1685 self selectedKeyRow isNil ifTrue:[^false]. |
1554 ^ self selectedKeyRow value > 1 |
1686 ^ self selectedKeyRow value > 1 |
1586 and:[self hasFirstRowSelection] |
1723 and:[self hasFirstRowSelection] |
1587 ! |
1724 ! |
1588 |
1725 |
1589 shouldSearchForSimilarTranslation |
1726 shouldSearchForSimilarTranslation |
1590 |
1727 |
1591 self isSearchForSimilarTranslationEnabled ifFalse:[^false]. |
1728 self isSearchForSimilarTranslationEnabled ifFalse:[^false]. |
1592 (self languageTextHolder value notNil and:[self languageTextHolder value notEmpty]) ifTrue:[^false]. |
1729 (self languageTextHolder value notNil and:[self languageTextHolder value notEmpty]) ifTrue:[^false]. |
1593 (self hasLanguageSelection and:[self selectedKeyRow notNil]) ifFalse:[^false]. |
1730 (self hasLanguageSelection and:[self selectedKeyRow notNil]) ifFalse:[^false]. |
1594 ^true |
1731 ^true |
1595 ! ! |
1732 ! ! |
1596 |
1733 |
1597 !InternationalLanguageTranslationEditor methodsFor:'read/write resourceFile'! |
1734 !InternationalLanguageTranslationEditor methodsFor:'read/write resourceFile'! |
1598 |
1735 |
1599 encoderAt: lang |
1736 encoderAt: lang |
1600 |
1737 |
1601 self alwaysWriteUTF8Holder value ifTrue:[^CharacterEncoder encoderForUTF8]. |
1738 self alwaysWriteUTF8Holder value ifTrue:[^CharacterEncoder encoderForUTF8]. |
1602 ^keyStringsToLanguageMappings encoderAt: lang. |
1739 ^keyStringsToLanguageMappings encoderAt: lang. |
1603 ! |
1740 ! |
1604 |
1741 |
1605 printEditingWarningOn: aStream |
1742 printEditingWarningOn: aStream |
1606 |
1743 |
1607 aStream nextPutAll: ';'; |
1744 aStream nextPutAll: ';'; |
1608 cr; |
1745 cr; |
1609 nextPutAll: '; WARNING:'; |
1746 nextPutAll: '; WARNING:'; |
1610 cr; |
1747 cr; |
1611 nextPutAll: '; this file contains national characters'; |
1748 nextPutAll: '; this file contains national characters'; |
1612 cr; |
1749 cr; |
1613 nextPutAll: '; DONT EDIT this file with an old vi !!'; |
1750 nextPutAll: '; DONT EDIT this file with an old vi !!'; |
1614 cr; |
1751 cr; |
1615 nextPutAll: ';'; |
1752 nextPutAll: ';'; |
1616 cr; |
1753 cr; |
1617 cr. |
1754 cr. |
1618 ! |
1755 ! |
1619 |
1756 |
1620 printEncoderFor: lang on: aStream |
1757 printEncoderFor: lang on: aStream |
1621 |characterEncoder encoderString| |
1758 |characterEncoder encoderString| |
1622 |
1759 |
1623 characterEncoder := self encoderAt: lang. |
1760 characterEncoder := self encoderAt: lang. |
1624 encoderString := characterEncoder isNil |
1761 encoderString := characterEncoder isNil |
1625 ifTrue:[self requestEncoderStringFor: lang] |
1762 ifTrue:[self requestEncoderStringFor: lang] |
1626 ifFalse:[characterEncoder nameOfEncoding printString]. |
1763 ifFalse:[characterEncoder nameOfEncoding printString]. |
1627 |
1764 |
1628 aStream nextPutAll: '#encoding'; |
1765 aStream nextPutAll: '#encoding'; |
1629 space; |
1766 space; |
1630 nextPutAll: encoderString; |
1767 nextPutAll: encoderString; |
1631 cr; |
1768 cr; |
1632 cr. |
1769 cr. |
1633 ! |
1770 ! |
1634 |
1771 |
1635 printLanguage: lang on: aStream |
1772 printLanguage: lang on: aStream |
1636 |
1773 |
1637 self printEncoderFor: lang on: aStream. |
1774 self printEncoderFor: lang on: aStream. |
1638 self printEditingWarningOn: aStream. |
1775 self printEditingWarningOn: aStream. |
1639 self printLanguageMappingsFor: lang on: aStream. |
1776 self printLanguageMappingsFor: lang on: aStream. |
1640 ! |
1777 ! |
1641 |
1778 |
1642 printLanguageMappingsFor: lang on: aStream |
1779 printLanguageMappingsFor: lang on: aStream |
1643 |
1780 |
1644 |orderedAssociations maxKeySize characterEncoder| |
1781 |orderedAssociations maxKeySize characterEncoder| |
1645 |
1782 |
1646 characterEncoder := self encoderAt: lang. |
1783 characterEncoder := self encoderAt: lang. |
1647 characterEncoder isNil ifTrue:[ characterEncoder := CharacterEncoder::NullEncoder ]. |
1784 characterEncoder isNil ifTrue:[ characterEncoder := CharacterEncoder::NullEncoder ]. |
1648 orderedAssociations := keyStringsToLanguageMappings orderedLanguageMappingsAssociationsFor: lang. |
1785 orderedAssociations := keyStringsToLanguageMappings orderedLanguageMappingsAssociationsFor: lang. |
1649 |
1786 |
1650 maxKeySize := keyStringsToLanguageMappings maxKeySizeForLanguage: lang. |
1787 maxKeySize := keyStringsToLanguageMappings maxKeySizeForLanguage: lang. |
1651 |
1788 |
1652 orderedAssociations do:[:association | |
1789 orderedAssociations do:[:association | |
1653 aStream nextPutAll: (association key storeString paddedTo: maxKeySize) ; |
1790 aStream nextPutAll: (association key storeString paddedTo: maxKeySize) ; |
1654 nextPutAll: (String new: 10); |
1791 nextPutAll: (String new: 10); |
1655 nextPutAll: (characterEncoder encodeString: association value) storeString; |
1792 nextPutAll: (characterEncoder encodeString: association value) storeString; |
1656 cr. |
1793 cr. |
1657 ]. |
1794 ]. |
1658 ! |
1795 ! |
1659 |
1796 |
1660 readResourceFile:aFilename asLanguage:lang |
1797 readResourceFile:aFilename asLanguage:lang |
1661 |resourcePack inStream lineString encoding decoder sortedKeys remainingKeys| |
1798 |resourcePack inStream lineString encoding decoder sortedKeys remainingKeys| |
1662 |
1799 |
1715 self saveResourceFile:aFilename for:lang asSymbol |
1852 self saveResourceFile:aFilename for:lang asSymbol |
1716 ! |
1853 ! |
1717 |
1854 |
1718 saveResourceFile: aFilename for: lang |
1855 saveResourceFile: aFilename for: lang |
1719 |
1856 |
1720 |aStream | |
1857 |aStream | |
1721 |
1858 |
1722 keyStringsToLanguageMappings atLanguage: lang putFilename: aFilename. |
1859 keyStringsToLanguageMappings atLanguage: lang putFilename: aFilename. |
1723 aStream := FileStream newFileNamed: aFilename. |
1860 aStream := FileStream newFileNamed: aFilename. |
1724 self printLanguage: lang on: aStream. |
1861 self printLanguage: lang on: aStream. |
1725 aStream flush; |
1862 aStream flush; |
1726 close. |
1863 close. |
1727 DialogBox information: 'The resource file for the language ', lang printString storeString, ' was saved in the file: ', aFilename nameString |
1864 DialogBox information: 'The resource file for the language ', lang printString storeString, ' was saved in the file: ', aFilename nameString |
1728 ! ! |
1865 ! ! |
1729 |
1866 |
1730 !InternationalLanguageTranslationEditor methodsFor:'specs-dynamic'! |
1867 !InternationalLanguageTranslationEditor methodsFor:'specs-dynamic'! |
1731 |
1868 |
1732 columnInRow:row at:colIndex |
1869 columnInRow:row at:colIndex |
1771 |
1908 |
1772 self updateExampleLanguageText. |
1909 self updateExampleLanguageText. |
1773 ! |
1910 ! |
1774 |
1911 |
1775 languageTextAccepted |
1912 languageTextAccepted |
1776 |nextRowIndex| |
1913 |nextRowIndex| |
1777 keyStringsToLanguageMappings size = self selectedKeyRow value |
1914 keyStringsToLanguageMappings size = self selectedKeyRow value |
1778 ifTrue:[ self updateLanguageTextModification.] |
1915 ifTrue:[ self updateLanguageTextModification.] |
1779 ifFalse:[ |
1916 ifFalse:[ |
1780 nextRowIndex := self selectedKeyRow value + 1. |
1917 nextRowIndex := self selectedKeyRow value + 1. |
1781 self selectedKeyRow value: nextRowIndex]. |
1918 self selectedKeyRow value: nextRowIndex]. |
1782 ! |
1919 ! |
1783 |
1920 |
1784 pastePreviousTranslationInLanguageText |
1921 pastePreviousTranslationInLanguageText |
1785 "Obtain the text from the previous translation and paste it into the languageTextEditor" |
1922 "Obtain the text from the previous translation and paste it into the languageTextEditor" |
1786 |
1923 |