Skip to content

Commit 7eb12b0

Browse files
authored
Refactor a bit the translation exporter so it can be used for non-source code strings in external projects. (#143)
1 parent 3220c4c commit 7eb12b0

File tree

1 file changed

+30
-12
lines changed

1 file changed

+30
-12
lines changed

source/Buoy-Development-Tools-Pharo-13/NaturalLanguageTranslationScanner.class.st

Lines changed: 30 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -35,27 +35,39 @@ NaturalLanguageTranslationScanner class >> forProjectNamed: aProjectName [
3535
{ #category : 'exporting' }
3636
NaturalLanguageTranslationScanner >> export [
3737

38-
^ self exportTo: targetRepository repositoryDirectory / 'locales' / 'en'
38+
^ self exportTo:
39+
self repositoryLocalesDirectory
3940
/ ( '<1s>.json' expandMacrosWith: self projectName asLowercase )
4041
]
4142

43+
{ #category : 'exporting' }
44+
NaturalLanguageTranslationScanner >> export: stringsToTranslateByCategory on: writeStream [
45+
46+
| translator output |
47+
translator := MonoglotNaturalLanguageTranslator for: 'en' asLanguageRange.
48+
output := OrderedDictionary new.
49+
stringsToTranslateByCategory keysAndValuesDo: [ :category :stringsToTranslate |
50+
| translations |
51+
translations := OrderedDictionary new.
52+
stringsToTranslate do: [ :string |
53+
translations at: ( translator hashCodeFor: string ) hex put: string ].
54+
output at: category put: translations
55+
].
56+
STONJSON put: output onStreamPretty: writeStream.
57+
writeStream lf
58+
]
59+
4260
{ #category : 'exporting' }
4361
NaturalLanguageTranslationScanner >> exportOn: writeStream [
4462

45-
| stringsToTranslate translator translations |
63+
| stringsToTranslate |
4664
stringsToTranslate := SortedCollection new.
4765
self scanProjectMethodsCollectingTranslationsIn: stringsToTranslate.
48-
translator := MonoglotNaturalLanguageTranslator for: 'en' asLanguageRange.
49-
translations := OrderedDictionary new.
50-
stringsToTranslate do: [ :string |
51-
translations at: ( translator hashCodeFor: string ) hex put: string ].
52-
53-
STONJSON
54-
put: ( OrderedDictionary new
55-
at: self projectName put: translations;
66+
self
67+
export: ( OrderedDictionary new
68+
at: self projectName put: stringsToTranslate;
5669
yourself )
57-
onStreamPretty: writeStream.
58-
writeStream lf
70+
on: writeStream
5971
]
6072

6173
{ #category : 'exporting' }
@@ -87,6 +99,12 @@ NaturalLanguageTranslationScanner >> projectName [
8799
^ targetRepository name
88100
]
89101

102+
{ #category : 'accessing' }
103+
NaturalLanguageTranslationScanner >> repositoryLocalesDirectory [
104+
105+
^ targetRepository repositoryDirectory / 'locales' / 'en'
106+
]
107+
90108
{ #category : 'private' }
91109
NaturalLanguageTranslationScanner >> scanProjectMethodsCollectingTranslationsIn: stringsToTranslate [
92110

0 commit comments

Comments
 (0)