Tools__InternationalLanguageTranslationEditor.st
changeset 2053 8440fcd83b7b
parent 2051 88d16a7d0bd9
child 2163 641467b2f522
equal deleted inserted replaced
2052:e74f41934760 2053:8440fcd83b7b
    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'
    18 		searchForSimilarTranslationEnableHolder alwaysWriteUTF8Holder'
    19 	classVariableNames:'LastExtractedClass LastExtractedApplicationClass
    19 	classVariableNames:'LastExtractedClass LastExtractedApplicationClass
    20 		LastExtractedProject'
    20 		LastExtractedProject'
    21 	poolDictionaries:''
    21 	poolDictionaries:''
    22 	category:'Interface-UIPainter'
    22 	category:'Interface-UIPainter'
    23 !
    23 !
   113        (WindowSpec
   113        (WindowSpec
   114           label: 'InternationalLanguageTranslationEditor'
   114           label: 'InternationalLanguageTranslationEditor'
   115           name: 'InternationalLanguageTranslationEditor'
   115           name: 'InternationalLanguageTranslationEditor'
   116           min: (Point 10 10)
   116           min: (Point 10 10)
   117           max: (Point 1024 768)
   117           max: (Point 1024 768)
   118           bounds: (Rectangle 0 0 780 616)
   118           bounds: (Rectangle 0 0 778 614)
   119           menu: mainMenu
   119           menu: mainMenu
   120         )
   120         )
   121         component: 
   121         component: 
   122        (SpecCollection
   122        (SpecCollection
   123           collection: (
   123           collection: (
   301                 )
   301                 )
   302                (MenuItem
   302                (MenuItem
   303                   label: '-'
   303                   label: '-'
   304                 )
   304                 )
   305                (MenuItem
   305                (MenuItem
       
   306                   label: 'Save All Resource Files'
       
   307                   itemValue: menuSaveAll
       
   308                   translateLabel: true
       
   309                 )
       
   310                (MenuItem
   306                   label: 'Save Resource File'
   311                   label: 'Save Resource File'
   307                   itemValue: menuSave
   312                   itemValue: menuSave
   308                   translateLabel: true
   313                   translateLabel: true
   309                 )
   314                 )
   310                (MenuItem
   315                (MenuItem
   425                 )
   430                 )
   426                (MenuItem
   431                (MenuItem
   427                   label: 'Search For Similar Translations'
   432                   label: 'Search For Similar Translations'
   428                   translateLabel: true
   433                   translateLabel: true
   429                   indication: searchForSimilarTranslationEnableHolder
   434                   indication: searchForSimilarTranslationEnableHolder
       
   435                 )
       
   436                (MenuItem
       
   437                   label: 'Always Write UTF8'
       
   438                   translateLabel: true
       
   439                   indication: alwaysWriteUTF8Holder
   430                 )
   440                 )
   431                )
   441                )
   432               nil
   442               nil
   433               nil
   443               nil
   434             )
   444             )
   644 selectedTranslation notNil ifTrue:[self languageTextHolderValue: selectedTranslation]. 
   654 selectedTranslation notNil ifTrue:[self languageTextHolderValue: selectedTranslation]. 
   645 ! !
   655 ! !
   646 
   656 
   647 !InternationalLanguageTranslationEditor methodsFor:'aspects'!
   657 !InternationalLanguageTranslationEditor methodsFor:'aspects'!
   648 
   658 
       
   659 alwaysWriteUTF8Holder
       
   660     alwaysWriteUTF8Holder isNil ifTrue:[alwaysWriteUTF8Holder := true asValue]. 
       
   661     ^ alwaysWriteUTF8Holder
       
   662 !
       
   663 
   649 autoAcceptHolder
   664 autoAcceptHolder
   650     autoAcceptHolder isNil ifTrue:[autoAcceptHolder := true asValue]. 
   665     autoAcceptHolder isNil ifTrue:[autoAcceptHolder := true asValue]. 
   651     ^ autoAcceptHolder
   666     ^ autoAcceptHolder
   652 !
   667 !
   653 
   668 
   981 addLanguage
   996 addLanguage
   982     |lang|
   997     |lang|
   983 
   998 
   984     lang := Dialog request:'New language (ISO symbol):'.
   999     lang := Dialog request:'New language (ISO symbol):'.
   985     lang isEmptyOrNil ifTrue:[^ self].
  1000     lang isEmptyOrNil ifTrue:[^ self].
   986 
  1001     lang := lang asSymbol.
   987     (keyStringsToLanguageMappings includesLanguage:lang) ifTrue:[^ self ].
  1002     (keyStringsToLanguageMappings includesLanguage:lang) ifTrue:[^ self ].
   988 
  1003 
   989     keyStringsToLanguageMappings addLanguage:lang.
  1004     keyStringsToLanguageMappings addLanguage:lang.
   990     self languagesList add:lang.
  1005     self languagesList add:lang.
   991     self shownLanguages add:lang.
  1006     self shownLanguages add:lang.
  1075     self readResourceFile:aFilename
  1090     self readResourceFile:aFilename
  1076 !
  1091 !
  1077 
  1092 
  1078 menuSave
  1093 menuSave
  1079 "Saves the language selected in the fileName from where the language resource was obtained."
  1094 "Saves the language selected in the fileName from where the language resource was obtained."
  1080     |lang aFilename|
  1095     |lang|
  1081 
  1096 
  1082     lang := self requestLanguage.
  1097     lang := self requestLanguage.
  1083     lang isNil ifTrue:[^ self].
  1098     lang isNil ifTrue:[^ self].
  1084     aFilename := keyStringsToLanguageMappings filenameAt:lang.
  1099     self saveLanguage: lang
  1085     aFilename isNil ifTrue:[
  1100 !
  1086         aFilename := self requestFilename.
  1101 
  1087         aFilename isNil ifTrue:[^ self].
  1102 menuSaveAll
  1088     ].
  1103 "Saves all the languages in the fileName from where the language resource was obtained."
  1089     self saveResourceFile:aFilename for:lang asSymbol
  1104     keyStringsToLanguageMappings languagesInUse do:[:each | self saveLanguage: each]. 
  1090 !
  1105 !
  1091 
  1106 
  1092 menuSaveAs
  1107 menuSaveAs
  1093 "Saves the language selected in the specified fileName."
  1108 "Saves the language selected in the specified fileName."
  1094      |lang aFilename|
  1109      |lang aFilename|
  1095 
  1110 
  1096     lang := self requestLanguage.
  1111     lang := self requestLanguage.
  1097     lang isNil ifTrue:[^ self]. 
  1112     lang isNil ifTrue:[^ self]. 
  1098     aFilename := self requestFilename.
  1113     aFilename := self requestFilenameFor:lang.
  1099     aFilename isNil ifTrue:[^ self].
  1114     aFilename isNil ifTrue:[^ self].
  1100     self saveResourceFile:aFilename for:lang asSymbol
  1115     self saveResourceFile:aFilename for:lang asSymbol
  1101 !
  1116 !
  1102 
  1117 
  1103 openAboutThisApplication
  1118 openAboutThisApplication
  1579 ^true
  1594 ^true
  1580 ! !
  1595 ! !
  1581 
  1596 
  1582 !InternationalLanguageTranslationEditor methodsFor:'read/write resourceFile'!
  1597 !InternationalLanguageTranslationEditor methodsFor:'read/write resourceFile'!
  1583 
  1598 
       
  1599 encoderAt: lang
       
  1600 
       
  1601 self alwaysWriteUTF8Holder value ifTrue:[^CharacterEncoder encoderForUTF8].
       
  1602 ^keyStringsToLanguageMappings encoderAt: lang.
       
  1603 !
       
  1604 
  1584 printEditingWarningOn: aStream
  1605 printEditingWarningOn: aStream
  1585 
  1606 
  1586 aStream nextPutAll: ';';
  1607 aStream nextPutAll: ';';
  1587         cr;
  1608         cr;
  1588         nextPutAll: '; WARNING:';
  1609         nextPutAll: '; WARNING:';
  1597 !
  1618 !
  1598 
  1619 
  1599 printEncoderFor: lang on: aStream
  1620 printEncoderFor: lang on: aStream
  1600 |characterEncoder encoderString|
  1621 |characterEncoder encoderString|
  1601 
  1622 
  1602 characterEncoder := keyStringsToLanguageMappings encoderAt: lang.
  1623 characterEncoder := self encoderAt: lang.
  1603 encoderString := characterEncoder isNil 
  1624 encoderString := characterEncoder isNil 
  1604     ifTrue:[self requestEncoderStringFor: lang]
  1625     ifTrue:[self requestEncoderStringFor: lang]
  1605     ifFalse:[characterEncoder nameOfEncoding printString].
  1626     ifFalse:[characterEncoder nameOfEncoding printString].
  1606 
  1627 
  1607 aStream nextPutAll: '#encoding';
  1628 aStream nextPutAll: '#encoding';
  1618 self printLanguageMappingsFor: lang on: aStream.
  1639 self printLanguageMappingsFor: lang on: aStream.
  1619 !
  1640 !
  1620 
  1641 
  1621 printLanguageMappingsFor: lang on: aStream
  1642 printLanguageMappingsFor: lang on: aStream
  1622 
  1643 
  1623 |orderedAssociations maxKeySize|   
  1644 |orderedAssociations maxKeySize characterEncoder|   
  1624 
  1645 
       
  1646 characterEncoder := self encoderAt: lang.
       
  1647 characterEncoder isNil ifTrue:[ characterEncoder := CharacterEncoder::NullEncoder ].
  1625 orderedAssociations := keyStringsToLanguageMappings orderedLanguageMappingsAssociationsFor: lang. 
  1648 orderedAssociations := keyStringsToLanguageMappings orderedLanguageMappingsAssociationsFor: lang. 
  1626 
  1649 
  1627 maxKeySize := keyStringsToLanguageMappings maxKeySizeForLanguage: lang.     
  1650 maxKeySize := keyStringsToLanguageMappings maxKeySizeForLanguage: lang.     
  1628 
  1651 
  1629 orderedAssociations do:[:association |
  1652 orderedAssociations do:[:association |
  1630     aStream nextPutAll: (association key storeString paddedTo: maxKeySize) ; 
  1653     aStream nextPutAll: (association key storeString paddedTo: maxKeySize) ; 
  1631         nextPutAll: (String new: 10);
  1654         nextPutAll: (String new: 10);
  1632         nextPutAll: association value storeString;
  1655         nextPutAll: (characterEncoder encodeString: association value) storeString;
  1633         cr.
  1656         cr.
  1634     ].
  1657     ].
  1635 !
  1658 !
  1636 
  1659 
  1637 readResourceFile:aFilename asLanguage:lang
  1660 readResourceFile:aFilename asLanguage:lang
  1677     remainingKeys do:[:k |
  1700     remainingKeys do:[:k |
  1678         keyStringsToLanguageMappings at:k language:lang put:(resourcePack at:k)
  1701         keyStringsToLanguageMappings at:k language:lang put:(resourcePack at:k)
  1679     ].
  1702     ].
  1680 !
  1703 !
  1681 
  1704 
       
  1705 saveLanguage: lang
       
  1706 "Saves the language in the fileName from where the language resource was obtained."
       
  1707     |aFilename|
       
  1708 
       
  1709     lang isNil ifTrue:[^ self].
       
  1710     aFilename := keyStringsToLanguageMappings filenameAt:lang.
       
  1711     aFilename isNil ifTrue:[
       
  1712         aFilename := self requestFilenameFor: lang.
       
  1713         aFilename isNil ifTrue:[^ self].
       
  1714     ].
       
  1715     self saveResourceFile:aFilename for:lang asSymbol
       
  1716 !
       
  1717 
  1682 saveResourceFile: aFilename for: lang
  1718 saveResourceFile: aFilename for: lang
  1683 
  1719 
  1684 |aStream |
  1720 |aStream |
  1685 
  1721 
  1686 keyStringsToLanguageMappings atLanguage: lang putFilename: aFilename.
  1722 keyStringsToLanguageMappings atLanguage: lang putFilename: aFilename.
  1879 ^self perLanguageInfo at: lang ifAbsentPut:[Dictionary new]
  1915 ^self perLanguageInfo at: lang ifAbsentPut:[Dictionary new]
  1880 !
  1916 !
  1881 
  1917 
  1882 languages
  1918 languages
  1883     ^ languages
  1919     ^ languages
       
  1920 !
       
  1921 
       
  1922 languagesInUse
       
  1923 "Returns a collection of symbols for the languages that have mappings"
       
  1924 
       
  1925 ^self languages select:[:each | (self atLanguage: each) notEmpty]
  1884 !
  1926 !
  1885 
  1927 
  1886 orderedLanguageMappingsAssociationsFor: language
  1928 orderedLanguageMappingsAssociationsFor: language
  1887 "Returns a collection of languageMappings associations (alphabetically ordered by keys) "
  1929 "Returns a collection of languageMappings associations (alphabetically ordered by keys) "
  1888 ^(self atLanguage: language) associations asSortedCollection:[:a :b | a key < b key].
  1930 ^(self atLanguage: language) associations asSortedCollection:[:a :b | a key < b key].