Skip to content

Commit e7feea3

Browse files
author
Konstantinos Bairaktaris
authored
Merge pull request #241 from transifex/TX-15697-fix_language_mappings
Make language mappings deterministic
2 parents 8f4f7ef + 847d44a commit e7feea3

File tree

3 files changed

+17
-19
lines changed

3 files changed

+17
-19
lines changed

internal/txlib/pull.go

Lines changed: 2 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -169,13 +169,11 @@ func (task *ResourcePullTask) Run(send func(string), abort func()) {
169169
}
170170
sendMessage("Getting info", false)
171171

172-
localToRemoteLanguageMappings := makeLocalToRemoteLanguageMappings(
172+
remoteToLocalLanguageMappings := makeRemoteToLocalLanguageMappings(
173173
*cfg,
174174
*cfgResource,
175175
)
176-
remoteToLocalLanguageMappings := makeRemoteToLocalLanguageMappings(
177-
localToRemoteLanguageMappings,
178-
)
176+
localToRemoteLanguageMappings := reverseMap(remoteToLocalLanguageMappings)
179177

180178
var err error
181179
var resource *jsonapi.Resource

internal/txlib/push.go

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -493,9 +493,11 @@ func (task *ResourcePushTask) Run(send func(string), abort func()) {
493493
}
494494
}
495495
if args.Translation { // -t flag is set
496-
localToRemoteLanguageMappings := makeLocalToRemoteLanguageMappings(
497-
*cfg,
498-
*cfgResource,
496+
localToRemoteLanguageMappings := reverseMap(
497+
makeRemoteToLocalLanguageMappings(
498+
*cfg,
499+
*cfgResource,
500+
),
499501
)
500502
overrides := cfgResource.Overrides
501503

internal/txlib/utils.go

Lines changed: 10 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -124,7 +124,7 @@ func stringSliceContains(haystack []string, needle string) bool {
124124
return false
125125
}
126126

127-
func makeLocalToRemoteLanguageMappings(
127+
func makeRemoteToLocalLanguageMappings(
128128
cfg config.Config, cfgResource config.Resource,
129129
) map[string]string {
130130
// In the configuration, the language mappings are "remote code -> local
@@ -133,24 +133,22 @@ func makeLocalToRemoteLanguageMappings(
133133
// reverse the maps
134134

135135
result := make(map[string]string)
136-
for key, value := range cfg.Local.LanguageMappings {
137-
result[value] = key
136+
for transifexLanguageCode, localLanguageCode := range cfg.Local.LanguageMappings {
137+
result[transifexLanguageCode] = localLanguageCode
138138
}
139-
for key, value := range cfgResource.LanguageMappings {
139+
for transifexLanguageCode, localLanguageCode := range cfgResource.LanguageMappings {
140140
// Resource language mappings overwrite "global" language mappings
141-
result[value] = key
141+
result[transifexLanguageCode] = localLanguageCode
142142
}
143143
return result
144144
}
145145

146-
func makeRemoteToLocalLanguageMappings(
147-
localToRemoteLanguageMappings map[string]string,
148-
) map[string]string {
149-
result := make(map[string]string)
150-
for key, value := range localToRemoteLanguageMappings {
151-
result[value] = key
146+
func reverseMap(src map[string]string) map[string]string {
147+
dst := make(map[string]string)
148+
for key, value := range src {
149+
dst[value] = key
152150
}
153-
return result
151+
return dst
154152
}
155153

156154
/*

0 commit comments

Comments
 (0)