--- a/Tools__InternationalLanguageTranslationEditor.st Tue Jun 13 17:53:43 2006 +0200
+++ b/Tools__InternationalLanguageTranslationEditor.st Wed Jun 14 11:14:54 2006 +0200
@@ -15,7 +15,7 @@
lastSelectedKey autoAcceptHolder languageEditor
selectedColIndexHolder exampleLanguageSelectionHolder
exampleLanguageTextHolder pastePreviousTranslationEnableHolder
- searchForSimilarTranslationEnableHolder'
+ searchForSimilarTranslationEnableHolder alwaysWriteUTF8Holder'
classVariableNames:'LastExtractedClass LastExtractedApplicationClass
LastExtractedProject'
poolDictionaries:''
@@ -115,7 +115,7 @@
name: 'InternationalLanguageTranslationEditor'
min: (Point 10 10)
max: (Point 1024 768)
- bounds: (Rectangle 0 0 780 616)
+ bounds: (Rectangle 0 0 778 614)
menu: mainMenu
)
component:
@@ -303,6 +303,11 @@
label: '-'
)
(MenuItem
+ label: 'Save All Resource Files'
+ itemValue: menuSaveAll
+ translateLabel: true
+ )
+ (MenuItem
label: 'Save Resource File'
itemValue: menuSave
translateLabel: true
@@ -428,6 +433,11 @@
translateLabel: true
indication: searchForSimilarTranslationEnableHolder
)
+ (MenuItem
+ label: 'Always Write UTF8'
+ translateLabel: true
+ indication: alwaysWriteUTF8Holder
+ )
)
nil
nil
@@ -646,6 +656,11 @@
!InternationalLanguageTranslationEditor methodsFor:'aspects'!
+alwaysWriteUTF8Holder
+ alwaysWriteUTF8Holder isNil ifTrue:[alwaysWriteUTF8Holder := true asValue].
+ ^ alwaysWriteUTF8Holder
+!
+
autoAcceptHolder
autoAcceptHolder isNil ifTrue:[autoAcceptHolder := true asValue].
^ autoAcceptHolder
@@ -983,7 +998,7 @@
lang := Dialog request:'New language (ISO symbol):'.
lang isEmptyOrNil ifTrue:[^ self].
-
+ lang := lang asSymbol.
(keyStringsToLanguageMappings includesLanguage:lang) ifTrue:[^ self ].
keyStringsToLanguageMappings addLanguage:lang.
@@ -1077,16 +1092,16 @@
menuSave
"Saves the language selected in the fileName from where the language resource was obtained."
- |lang aFilename|
+ |lang|
lang := self requestLanguage.
lang isNil ifTrue:[^ self].
- aFilename := keyStringsToLanguageMappings filenameAt:lang.
- aFilename isNil ifTrue:[
- aFilename := self requestFilename.
- aFilename isNil ifTrue:[^ self].
- ].
- self saveResourceFile:aFilename for:lang asSymbol
+ self saveLanguage: lang
+!
+
+menuSaveAll
+"Saves all the languages in the fileName from where the language resource was obtained."
+ keyStringsToLanguageMappings languagesInUse do:[:each | self saveLanguage: each].
!
menuSaveAs
@@ -1095,7 +1110,7 @@
lang := self requestLanguage.
lang isNil ifTrue:[^ self].
- aFilename := self requestFilename.
+ aFilename := self requestFilenameFor:lang.
aFilename isNil ifTrue:[^ self].
self saveResourceFile:aFilename for:lang asSymbol
!
@@ -1581,6 +1596,12 @@
!InternationalLanguageTranslationEditor methodsFor:'read/write resourceFile'!
+encoderAt: lang
+
+self alwaysWriteUTF8Holder value ifTrue:[^CharacterEncoder encoderForUTF8].
+^keyStringsToLanguageMappings encoderAt: lang.
+!
+
printEditingWarningOn: aStream
aStream nextPutAll: ';';
@@ -1599,7 +1620,7 @@
printEncoderFor: lang on: aStream
|characterEncoder encoderString|
-characterEncoder := keyStringsToLanguageMappings encoderAt: lang.
+characterEncoder := self encoderAt: lang.
encoderString := characterEncoder isNil
ifTrue:[self requestEncoderStringFor: lang]
ifFalse:[characterEncoder nameOfEncoding printString].
@@ -1620,8 +1641,10 @@
printLanguageMappingsFor: lang on: aStream
-|orderedAssociations maxKeySize|
+|orderedAssociations maxKeySize characterEncoder|
+characterEncoder := self encoderAt: lang.
+characterEncoder isNil ifTrue:[ characterEncoder := CharacterEncoder::NullEncoder ].
orderedAssociations := keyStringsToLanguageMappings orderedLanguageMappingsAssociationsFor: lang.
maxKeySize := keyStringsToLanguageMappings maxKeySizeForLanguage: lang.
@@ -1629,7 +1652,7 @@
orderedAssociations do:[:association |
aStream nextPutAll: (association key storeString paddedTo: maxKeySize) ;
nextPutAll: (String new: 10);
- nextPutAll: association value storeString;
+ nextPutAll: (characterEncoder encodeString: association value) storeString;
cr.
].
!
@@ -1679,6 +1702,19 @@
].
!
+saveLanguage: lang
+"Saves the language in the fileName from where the language resource was obtained."
+ |aFilename|
+
+ lang isNil ifTrue:[^ self].
+ aFilename := keyStringsToLanguageMappings filenameAt:lang.
+ aFilename isNil ifTrue:[
+ aFilename := self requestFilenameFor: lang.
+ aFilename isNil ifTrue:[^ self].
+ ].
+ self saveResourceFile:aFilename for:lang asSymbol
+!
+
saveResourceFile: aFilename for: lang
|aStream |
@@ -1883,6 +1919,12 @@
^ languages
!
+languagesInUse
+"Returns a collection of symbols for the languages that have mappings"
+
+^self languages select:[:each | (self atLanguage: each) notEmpty]
+!
+
orderedLanguageMappingsAssociationsFor: language
"Returns a collection of languageMappings associations (alphabetically ordered by keys) "
^(self atLanguage: language) associations asSortedCollection:[:a :b | a key < b key].