| 
									
										
										
										
											2022-04-01 12:51:55 +02:00
										 |  |  | import {VariableUiElement} from "./VariableUIElement"; | 
					
						
							|  |  |  | import Locale from "../i18n/Locale"; | 
					
						
							|  |  |  | import Link from "./Link"; | 
					
						
							|  |  |  | import Svg from "../../Svg"; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | export default class LinkToWeblate extends VariableUiElement { | 
					
						
							| 
									
										
										
										
											2022-04-15 00:10:04 +02:00
										 |  |  |     private static URI: any; | 
					
						
							| 
									
										
										
										
											2022-04-01 12:51:55 +02:00
										 |  |  |     constructor(context: string, availableTranslations: object) { | 
					
						
							|  |  |  |         super( Locale.language.map(ln => { | 
					
						
							|  |  |  |             if (Locale.showLinkToWeblate.data === false) { | 
					
						
							|  |  |  |                 return undefined; | 
					
						
							|  |  |  |             } | 
					
						
							|  |  |  |             if(availableTranslations["*"] !== undefined){ | 
					
						
							|  |  |  |                 return undefined | 
					
						
							|  |  |  |             } | 
					
						
							| 
									
										
										
										
											2022-04-03 23:42:35 +02:00
										 |  |  |             if(context === undefined || context.indexOf(":") < 0){ | 
					
						
							|  |  |  |                 return undefined | 
					
						
							|  |  |  |             } | 
					
						
							| 
									
										
										
										
											2022-04-01 12:51:55 +02:00
										 |  |  |             const icon = Svg.translate_svg() | 
					
						
							|  |  |  |                 .SetClass("rounded-full border border-gray-400 inline-block w-4 h-4 m-1 weblate-link self-center") | 
					
						
							|  |  |  |             if(availableTranslations[ln] === undefined){ | 
					
						
							|  |  |  |                 icon.SetClass("bg-red-400") | 
					
						
							|  |  |  |             } | 
					
						
							|  |  |  |             return new Link(icon, | 
					
						
							|  |  |  |                 LinkToWeblate.hrefToWeblate(ln, context), true) | 
					
						
							|  |  |  |         } ,[Locale.showLinkToWeblate])); | 
					
						
							|  |  |  |         this.SetClass("enable-links hidden-on-mobile") | 
					
						
							|  |  |  |     } | 
					
						
							|  |  |  |      | 
					
						
							|  |  |  |     public static hrefToWeblate(language: string, contextKey: string): string{ | 
					
						
							| 
									
										
										
										
											2022-04-03 23:42:35 +02:00
										 |  |  |         if(contextKey === undefined || contextKey.indexOf(":") < 0){ | 
					
						
							|  |  |  |             return undefined | 
					
						
							|  |  |  |         } | 
					
						
							| 
									
										
										
										
											2022-04-01 12:51:55 +02:00
										 |  |  |         const [category, ...rest] = contextKey.split(":") | 
					
						
							|  |  |  |         const key = rest.join(":") | 
					
						
							|  |  |  |          | 
					
						
							|  |  |  |         const baseUrl = "https://hosted.weblate.org/translate/mapcomplete/" | 
					
						
							|  |  |  |         return baseUrl + category + "/" + language + "/?offset=1&q=context%3A%3D%22" + key + "%22" | 
					
						
							|  |  |  |     } | 
					
						
							| 
									
										
										
										
											2022-04-15 00:10:04 +02:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2022-06-05 03:41:53 +02:00
										 |  |  |     public static hrefToWeblateZen(language: string, category: "core" | "themes" | "layers" | "shared-questions" | "glossary" | string, searchKey: string): string{ | 
					
						
							| 
									
										
										
										
											2022-04-15 00:10:04 +02:00
										 |  |  |         const baseUrl = "https://hosted.weblate.org/zen/mapcomplete/" | 
					
						
							|  |  |  |         // ?offset=1&q=+state%3A%3Ctranslated+context%3Acampersite&sort_by=-priority%2Cposition&checksum=
 | 
					
						
							|  |  |  |         return baseUrl + category + "/" + language + "?offset=1&q=+state%3A%3Ctranslated+context%3A"+encodeURIComponent(searchKey)+"&sort_by=-priority%2Cposition&checksum=" | 
					
						
							|  |  |  |     } | 
					
						
							| 
									
										
										
										
											2022-04-01 12:51:55 +02:00
										 |  |  | } |