--- a/Tools__InternationalLanguageTranslationEditor.st Tue Oct 07 15:34:26 2008 +0200
+++ b/Tools__InternationalLanguageTranslationEditor.st Tue Oct 07 15:40:43 2008 +0200
@@ -22,7 +22,7 @@
searchBarInfoLabelHolder searchTextHolder searchTextView
searchBoxView translationsPanel lastPackage'
classVariableNames:'LastExtractedClass LastExtractedApplicationClass
- LastExtractedProject'
+ LastExtractedProject LastProject'
poolDictionaries:''
category:'Interface-UIPainter'
!
@@ -625,6 +625,11 @@
label: '-'
)
(MenuItem
+ label: 'Open Resources for Package or Project...'
+ itemValue: menuOpenByPackage
+ translateLabel: true
+ )
+ (MenuItem
label: 'Open Resource File...'
itemValue: menuOpen
translateLabel: true
@@ -651,7 +656,7 @@
label: '-'
)
(MenuItem
- label: 'Import existing tranlations from file...'
+ label: 'Import existing translations from file...'
itemValue: importExistingTranslationsFromFile
translateLabel: true
)
@@ -1427,7 +1432,7 @@
|aFilename|
aFilename := Dialog
- requestFileName:'Name of resource file:'
+ requestFileName:(resources string:'Name of resource file:')
default:nil
pattern:'*.rs'.
@@ -1440,7 +1445,7 @@
|aFilename|
aFilename := Dialog
- requestFileName:'Name of resource file to save ', lang asString, ' :'
+ requestFileName:(resources string:'Name of resource file to save %1:' with:lang asString)
default:nil
pattern:'*.rs'.
@@ -1450,8 +1455,10 @@
!
requestLanguage
-
- ^ Dialog choose:'For which language ?' fromList:languagesList lines:10.
+ ^ Dialog
+ choose:(resources string:'For which language ?')
+ fromList:languagesList
+ lines:10.
!
requestLanguageToSave
@@ -1459,6 +1466,19 @@
choose:'Which language do you want to save?'
fromList:languagesList
lines:10
+!
+
+requestPackage
+ |package|
+
+ package := Dialog
+ requestProject:(resources string:'Name of Package:')
+ initialAnswer:LastProject
+ suggestions:nil.
+
+ package isEmptyOrNil ifTrue:[^ nil ].
+ LastProject := package.
+ ^ package
! !
!InternationalLanguageTranslationEditor methodsFor:'images'!
@@ -1536,9 +1556,15 @@
addLanguage
|lang|
- lang := Dialog request:'New language (ISO symbol):'.
+ lang := Dialog request:(resources string:'New language (ISO symbol):').
lang isEmptyOrNil ifTrue:[^ self].
- lang := lang asSymbol.
+ self addLanguage:lang
+!
+
+addLanguage:langArg
+ |lang|
+
+ lang := langArg asSymbol.
(keyStringsToLanguageMappings includesLanguage:lang) ifTrue:[^ self ].
keyStringsToLanguageMappings addLanguage:lang.
@@ -1584,7 +1610,7 @@
initialAnswer:defaultPackage
suggestions:#('foo' 'bar' 'baz').
package isNil ifTrue:[
- ^Dialog information:(resources string:'No such package exists.')
+ ^ self "/ Dialog information:(resources string:'No such package exists.')
].
lastPackage := package.
!
@@ -1650,6 +1676,7 @@
!
importExistingTranslationsFromFile
+ self information:'The import function is not available in this release'.
!
inspectCanvasMissingStrings
@@ -1706,6 +1733,16 @@
]
!
+menuOpenByPackage
+ |package|
+
+ self withWaitCursorDo:[
+ package := self requestPackage.
+ package isNil ifTrue:[^ self ].
+ self readResourceFileForPackage:package.
+ ]
+!
+
menuSave
"Saves the language selected in the fileName from where the language resource was obtained."
|lang|
@@ -1762,6 +1799,48 @@
self readResourceFile:aFilename asLanguage:lang asSymbol
!
+readResourceFileForPackage:aPackage
+ |allLanguages lang packageDir resourceDir langFile|
+
+ packageDir := Smalltalk packageDirectoryForPackageId:aPackage.
+ resourceDir := packageDir asFilename construct:'resources'.
+
+ allLanguages := Set new.
+ resourceDir directoryContentsAsFilenamesDo:[:eachFile |
+ eachFile suffix = 'rs' ifTrue:[
+ (('##.rs' match:eachFile baseName)
+ or:[('##-##.rs' match:eachFile baseName)]) ifTrue:[
+ allLanguages add:(eachFile withoutSuffix baseName)
+ ].
+ ].
+ ].
+
+ allLanguages addAll:languagesList.
+ allLanguages := allLanguages asSortedCollection.
+
+ lang := Dialog
+ choose:(resources string:'For which language ?')
+ fromList:allLanguages
+ values:allLanguages
+ buttons:(resources array:#('All'))
+ values:#(all)
+ lines:10
+ cancel:nil.
+
+ lang isNil ifTrue:[^ self ].
+
+ langFile := resourceDir construct:lang,'.rs'.
+
+ lang == #all ifTrue:[
+ allLanguages do:[:lang |
+ self addLanguage:lang.
+ self readResourceFile:(resourceDir construct:lang,'.rs') asLanguage:lang.
+ ].
+ ] ifFalse:[
+ self readResourceFile:langFile asLanguage:lang asSymbol
+ ].
+!
+
removeLanguage
|lang|
@@ -2340,7 +2419,10 @@
readResourceFile:aFilename asLanguage:lang
|resourcePack inStream lineString encoding decoder sortedKeys remainingKeys|
- aFilename exists ifFalse:[^ self ].
+ aFilename exists ifFalse:[
+ Dialog information:(resources string:'Language file: "%1" does not exist' with:aFilename baseName).
+ ^ self
+ ].
resourcePack := ResourcePack new.
@@ -2372,14 +2454,15 @@
remainingKeys := resourcePack keys select:[:k | k isString not].
keyStringsToLanguageMappings atLanguage: lang putFilename: aFilename.
- keyStringsToLanguageMappings atLanguage: lang putEncoder: decoder.
+ keyStringsToLanguageMappings atLanguage: lang putEncoder: decoder.
sortedKeys do:[:k |
- keyStringsToLanguageMappings at:k language:lang put:(resourcePack at:k)
+ keyStringsToLanguageMappings at:k language:lang put:(resourcePack at:k) sendChange:false
].
remainingKeys do:[:k |
- keyStringsToLanguageMappings at:k language:lang put:(resourcePack at:k)
+ keyStringsToLanguageMappings at:k language:lang put:(resourcePack at:k) sendChange:false
].
+ keyStringsToLanguageMappings changed.
!
saveLanguage: lang
@@ -2772,9 +2855,13 @@
!InternationalLanguageTranslationEditor::KeyStringsToLanguageMappings methodsFor:'accessing'!
addKey:aKey
+ self addKey:aKey sendChange:true
+!
+
+addKey:aKey sendChange:aBoolean
(keys includes:aKey) ifFalse:[
keys add:aKey.
- self changed.
+ aBoolean ifTrue:[ self changed ].
]
!
@@ -2800,6 +2887,12 @@
(self rowForKey:aKey) changed
!
+at:aKey language:language put:value sendChange:sendChange
+ self addKey:aKey sendChange:sendChange.
+ (perLanguageMappings at:language) at:aKey put:value.
+ (self rowForKey:aKey) changed
+!
+
atLanguage: lang putEncoder: aDecoder
^(self languageInfoAt: lang) at: self encoderKey put: aDecoder