forked from MapComplete/MapComplete
		
	Fix translation links in import notes
This commit is contained in:
		
							parent
							
								
									ff0c2451da
								
							
						
					
					
						commit
						92c6e70c8f
					
				
					 2 changed files with 25 additions and 7 deletions
				
			
		|  | @ -3,7 +3,7 @@ import LayerConfig from "../LayerConfig"; | ||||||
| import {LayerConfigJson} from "../Json/LayerConfigJson"; | import {LayerConfigJson} from "../Json/LayerConfigJson"; | ||||||
| import Translations from "../../../UI/i18n/Translations"; | import Translations from "../../../UI/i18n/Translations"; | ||||||
| import PointRenderingConfigJson from "../Json/PointRenderingConfigJson"; | import PointRenderingConfigJson from "../Json/PointRenderingConfigJson"; | ||||||
| import {Translation} from "../../../UI/i18n/Translation"; | import {Translation, TypedTranslation} from "../../../UI/i18n/Translation"; | ||||||
| 
 | 
 | ||||||
| export default class CreateNoteImportLayer extends Conversion<LayerConfigJson, LayerConfigJson> { | export default class CreateNoteImportLayer extends Conversion<LayerConfigJson, LayerConfigJson> { | ||||||
|     /** |     /** | ||||||
|  | @ -50,9 +50,13 @@ export default class CreateNoteImportLayer extends Conversion<LayerConfigJson, L | ||||||
| 
 | 
 | ||||||
|         const importButton = {} |         const importButton = {} | ||||||
|         { |         { | ||||||
|             const translations = t.importButton.Subs({layerId: layer.id, title: layer.presets[0].title}).translations |             const translations = trs(t.importButton,{layerId: layer.id, title: layer.presets[0].title}) | ||||||
|             for (const key in translations) { |             for (const key in translations) { | ||||||
|                 importButton[key] = "{" + translations[key] + "}" |                 if(key !== "_context"){ | ||||||
|  |                     importButton[key] = "{" + translations[key] + "}" | ||||||
|  |                 }else{ | ||||||
|  |                     importButton[key] = translations[key] | ||||||
|  |                 } | ||||||
|             } |             } | ||||||
|         } |         } | ||||||
| 
 | 
 | ||||||
|  | @ -61,13 +65,22 @@ export default class CreateNoteImportLayer extends Conversion<LayerConfigJson, L | ||||||
|             for (const language in translation.translations) { |             for (const language in translation.translations) { | ||||||
|                 result[language] = prefix + translation.translations[language] + postfix |                 result[language] = prefix + translation.translations[language] + postfix | ||||||
|             } |             } | ||||||
|  |             result["_context"] = translation.context | ||||||
|             return result |             return result | ||||||
|         } |         } | ||||||
|          |          | ||||||
|  |         function tr(translation: Translation){ | ||||||
|  |             return{ ...translation.translations, "_context": translation.context} | ||||||
|  |         } | ||||||
|  | 
 | ||||||
|  |         function trs<T>(translation: TypedTranslation<T>, subs: T) : object{ | ||||||
|  |             return {...translation.Subs(subs).translations, "_context": translation.context} | ||||||
|  |         } | ||||||
|  | 
 | ||||||
|         const result: LayerConfigJson = { |         const result: LayerConfigJson = { | ||||||
|             "id": "note_import_" + layer.id, |             "id": "note_import_" + layer.id, | ||||||
|             // By disabling the name, the import-layers won't pollute the filter view "name": t.layerName.Subs({title: layer.title.render}).translations,
 |             // By disabling the name, the import-layers won't pollute the filter view "name": t.layerName.Subs({title: layer.title.render}).translations,
 | ||||||
|             "description": t.description.Subs({title: layer.title.render}).translations, |             "description": trs(t.description , {title: layer.title.render}), | ||||||
|             "source": { |             "source": { | ||||||
|                 "osmTags": { |                 "osmTags": { | ||||||
|                     "and": [ |                     "and": [ | ||||||
|  | @ -80,7 +93,7 @@ export default class CreateNoteImportLayer extends Conversion<LayerConfigJson, L | ||||||
|             }, |             }, | ||||||
|             "minzoom": Math.min(12, layerJson.minzoom - 2), |             "minzoom": Math.min(12, layerJson.minzoom - 2), | ||||||
|             "title": { |             "title": { | ||||||
|                 "render": t.popupTitle.Subs({title}).translations |                 "render": trs( t.popupTitle, {title}) | ||||||
|             }, |             }, | ||||||
|             "calculatedTags": [ |             "calculatedTags": [ | ||||||
|                 "_first_comment=feat.get('comments')[0].text.toLowerCase()", |                 "_first_comment=feat.get('comments')[0].text.toLowerCase()", | ||||||
|  | @ -140,7 +153,7 @@ export default class CreateNoteImportLayer extends Conversion<LayerConfigJson, L | ||||||
|                 }, |                 }, | ||||||
|                 { |                 { | ||||||
|                     "id": "handled", |                     "id": "handled", | ||||||
|                     "render": t.importHandled.translations, |                     "render": tr(t.importHandled), | ||||||
|                     condition: "closed_at~*" |                     condition: "closed_at~*" | ||||||
|                 }, |                 }, | ||||||
|                 { |                 { | ||||||
|  |  | ||||||
|  | @ -279,6 +279,11 @@ export class TypedTranslation<T> extends Translation { | ||||||
|      * subbed.textFor("nl") // => "Volledige zin met onderdeel"
 |      * subbed.textFor("nl") // => "Volledige zin met onderdeel"
 | ||||||
|      */ |      */ | ||||||
|     Subs(text: T, context?: string): Translation { |     Subs(text: T, context?: string): Translation { | ||||||
|         return this.OnEveryLanguage((template, lang) => Utils.SubstituteKeys(template, text, lang), context) |         return this.OnEveryLanguage((template, lang) => { | ||||||
|  |             if(lang === "_context"){ | ||||||
|  |                 return template | ||||||
|  |             } | ||||||
|  |             return Utils.SubstituteKeys(template, text, lang); | ||||||
|  |         }, context) | ||||||
|     } |     } | ||||||
| } | } | ||||||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue