Skip to content

Commit 9774f18

Browse files
committed
Use Crowdin for translations
1 parent d2eb8b7 commit 9774f18

12 files changed

Lines changed: 222 additions & 252 deletions

File tree

.gitignore

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,4 +5,5 @@ web-ext-artifacts/
55
*.pem
66
*.crx
77
public/_metadata
8-
public/build
8+
public/build
9+
crowdin.yml

README.md

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,8 @@ WebExtension which adds an option to the context menu to search with an image on
44

55
This extension does not collect, transmit, or store any user data. All image searches are performed client-side by opening user-configured reverse image search engines in new tabs. No information is sent to third parties by the extension itself.
66

7+
Submit translations to [Crowdin](https://crowdin.com/project/reverse-image-search-webextens).
8+
79
## Installation
810

911
- Available for Firefox on [addons.mozilla.org](https://addons.mozilla.org/firefox/addon/image-reverse-search/)

package.json

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,9 @@
1919
"lint:code": "biome lint",
2020
"lint:web-ext": "npm run build && web-ext lint",
2121
"web-ext:build": "npm run build && web-ext build --overwrite-dest",
22-
"web-ext:upload": "npm run web-ext:build && web-ext sign --channel=listed"
22+
"web-ext:upload": "npm run web-ext:build && web-ext sign --channel=listed",
23+
"i18n:upload": "crowdin upload sources",
24+
"i18n:download": "crowdin download"
2325
},
2426
"webExt": {
2527
"sourceDir": "./public/",

public/_locales/de/messages.json

Lines changed: 1 addition & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -45,7 +45,7 @@
4545
"message": "Suchseite öffnen"
4646
},
4747
"openTabAtLeft": {
48-
"message": "Links nebem dem aktuellen Tab"
48+
"message": "Links neben dem aktuellen Tab"
4949
},
5050
"openTabAtRight": {
5151
"message": "Rechts neben dem aktuellen Tab"
@@ -98,9 +98,6 @@
9898
"postFieldNameLabel": {
9999
"message": "POST-Feldname"
100100
},
101-
"postFieldNamePlaceholder": {
102-
"message": "url"
103-
},
104101
"contentTypeLabel": {
105102
"message": "Content-Type"
106103
},

public/_locales/es/messages.json

Lines changed: 26 additions & 30 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,9 @@
88
"contextMenuTitle": {
99
"message": "Búsqueda inversa de imagen"
1010
},
11+
"errorWhileSaving": {
12+
"message": "Hubo un error desconocido al guardar."
13+
},
1114
"extensionDescription": {
1215
"message": "Añade una opción al menú contextual para buscar inversamente una imagen en varios servicios"
1316
},
@@ -26,6 +29,9 @@
2629
"msgIconUploadNotSquareImage": {
2730
"message": "Por favor suba una imagen rectangular!"
2831
},
32+
"msgIconUploadNotSupported": {
33+
"message": "El uso de iconos en menús contextuales no es compatible con este navegador."
34+
},
2935
"msgSuccessSaveOptions": {
3036
"message": "Guardado!"
3137
},
@@ -61,6 +67,9 @@
6167
"providerURLPlaceholder": {
6268
"message": "http(s):// al comienzo y %s como ubicador para la url de la imagen..."
6369
},
70+
"providerURLPlaceholderPOST": {
71+
"message": "http(s):// al inicio..."
72+
},
6473
"providerURLPlaceholderError": {
6574
"message": "El url del proveedor $index$ es inválido. Use http(s):// al inicio y %s como ubicador para el url de la imagen.",
6675
"placeholders": {
@@ -69,46 +78,34 @@
6978
}
7079
}
7180
},
72-
"restoreDefaultSearchProviders": {
73-
"message": "Restaurar predeterminados"
74-
},
75-
"saveOptions": {
76-
"message": "Guardar opciones"
77-
},
78-
"redirectingToSearchEngine": {
79-
"message": "Redirigiendo al motor de búsqueda..."
80-
},
81-
"contentTypeLabel": {
82-
"message": "Tipo de Contenido"
81+
"providerURLPlaceholderErrorPOST": {
82+
"message": "La URL del proveedor $index$ es inválida. Use http(s):// al inicio.",
83+
"placeholders": {
84+
"index": {
85+
"content": "$1"
86+
}
87+
}
8388
},
8489
"doNotEncodeUrlLabel": {
8590
"message": "No codificar URL"
8691
},
87-
"errorWhileSaving": {
88-
"message": "Hubo un error desconocido al guardar."
92+
"stripProtocolLabel": {
93+
"message": "Eliminar protocolo de la URL de la imagen"
8994
},
9095
"httpMethodLabel": {
9196
"message": "Método HTTP"
9297
},
93-
"msgIconUploadNotSupported": {
94-
"message": "El uso de iconos en menús contextuales no es compatible con este navegador."
95-
},
9698
"postFieldNameLabel": {
9799
"message": "Nombre del campo POST"
98100
},
99-
"postFieldNamePlaceholder": {
100-
"message": "url"
101+
"contentTypeLabel": {
102+
"message": "Tipo de Contenido"
101103
},
102-
"providerURLPlaceholderErrorPOST": {
103-
"message": "La URL del proveedor $index$ es inválida. Use http(s):// al inicio.",
104-
"placeholders": {
105-
"index": {
106-
"content": "$1"
107-
}
108-
}
104+
"restoreDefaultSearchProviders": {
105+
"message": "Restaurar predeterminados"
109106
},
110-
"providerURLPlaceholderPOST": {
111-
"message": "http(s):// al inicio..."
107+
"saveOptions": {
108+
"message": "Guardar opciones"
112109
},
113110
"searchAllByDefault": {
114111
"message": "Buscar en todos los proveedores por defecto"
@@ -122,8 +119,8 @@
122119
"showOpenAllAtTop": {
123120
"message": "Mostrar 'Abrir Todos' en la parte superior"
124121
},
125-
"stripProtocolLabel": {
126-
"message": "Eliminar protocolo de la URL de la imagen"
122+
"redirectingToSearchEngine": {
123+
"message": "Redirigiendo al motor de búsqueda..."
127124
},
128125
"privacyPolicy": {
129126
"message": "Política de Privacidad"
@@ -160,7 +157,6 @@
160157
"consentHowDataUsedDescription": {
161158
"message": "Las URLs de imágenes solo se usan para realizar búsquedas inversas de imágenes en los servicios que seleccione. Esta extensión no almacena datos y no comparte datos con terceros, excepto la URL de imagen con el motor de búsqueda elegido."
162159
},
163-
164160
"consentAccept": {
165161
"message": "Aceptar y Continuar"
166162
},

public/_locales/fr/messages.json

Lines changed: 26 additions & 30 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,9 @@
88
"contextMenuTitle": {
99
"message": "Recherche inversée d'image"
1010
},
11+
"errorWhileSaving": {
12+
"message": "Une erreur inconnue s'est produite lors de la sauvegarde."
13+
},
1114
"extensionDescription": {
1215
"message": "Ajoute une option au menu contextuel pour éffectuer une recherche inversée d'une image sur une variété de services"
1316
},
@@ -26,6 +29,9 @@
2629
"msgIconUploadNotSquareImage": {
2730
"message": "Merci de télécharger une image carrée"
2831
},
32+
"msgIconUploadNotSupported": {
33+
"message": "L'utilisation d'icônes dans les menus contextuels n'est pas prise en charge par ce navigateur."
34+
},
2935
"msgSuccessSaveOptions": {
3036
"message": "Enregistrée!"
3137
},
@@ -61,6 +67,9 @@
6167
"providerURLPlaceholder": {
6268
"message": "http(s):// au début et %s pour l'url de l'image..."
6369
},
70+
"providerURLPlaceholderPOST": {
71+
"message": "http(s):// au début..."
72+
},
6473
"providerURLPlaceholderError": {
6574
"message": "L'URL du fournisseur $index$ est invalide. Utiliser http(s):// au début et %s en tant qu'emplacement pour l'URL de l'image.",
6675
"placeholders": {
@@ -69,46 +78,34 @@
6978
}
7079
}
7180
},
72-
"restoreDefaultSearchProviders": {
73-
"message": "Restaurer par défaut"
74-
},
75-
"saveOptions": {
76-
"message": "Enregistrer réglages"
77-
},
78-
"redirectingToSearchEngine": {
79-
"message": "Redirection vers le moteur de recherche..."
80-
},
81-
"contentTypeLabel": {
82-
"message": "Type de Contenu"
81+
"providerURLPlaceholderErrorPOST": {
82+
"message": "L'URL du fournisseur $index$ est invalide. Utilisez http(s):// au début.",
83+
"placeholders": {
84+
"index": {
85+
"content": "$1"
86+
}
87+
}
8388
},
8489
"doNotEncodeUrlLabel": {
8590
"message": "Ne pas encoder l'URL"
8691
},
87-
"errorWhileSaving": {
88-
"message": "Une erreur inconnue s'est produite lors de la sauvegarde."
92+
"stripProtocolLabel": {
93+
"message": "Supprimer le protocole de l'URL de l'image"
8994
},
9095
"httpMethodLabel": {
9196
"message": "Méthode HTTP"
9297
},
93-
"msgIconUploadNotSupported": {
94-
"message": "L'utilisation d'icônes dans les menus contextuels n'est pas prise en charge par ce navigateur."
95-
},
9698
"postFieldNameLabel": {
9799
"message": "Nom du champ POST"
98100
},
99-
"postFieldNamePlaceholder": {
100-
"message": "url"
101+
"contentTypeLabel": {
102+
"message": "Type de Contenu"
101103
},
102-
"providerURLPlaceholderErrorPOST": {
103-
"message": "L'URL du fournisseur $index$ est invalide. Utilisez http(s):// au début.",
104-
"placeholders": {
105-
"index": {
106-
"content": "$1"
107-
}
108-
}
104+
"restoreDefaultSearchProviders": {
105+
"message": "Restaurer par défaut"
109106
},
110-
"providerURLPlaceholderPOST": {
111-
"message": "http(s):// au début..."
107+
"saveOptions": {
108+
"message": "Enregistrer réglages"
112109
},
113110
"searchAllByDefault": {
114111
"message": "Rechercher dans tous les fournisseurs par défaut"
@@ -122,8 +119,8 @@
122119
"showOpenAllAtTop": {
123120
"message": "Afficher 'Tout Ouvrir' en haut"
124121
},
125-
"stripProtocolLabel": {
126-
"message": "Supprimer le protocole de l'URL de l'image"
122+
"redirectingToSearchEngine": {
123+
"message": "Redirection vers le moteur de recherche..."
127124
},
128125
"privacyPolicy": {
129126
"message": "Politique de Confidentialité"
@@ -160,7 +157,6 @@
160157
"consentHowDataUsedDescription": {
161158
"message": "Les URLs d'images ne sont utilisées que pour effectuer des recherches d'images inversées sur les services que vous sélectionnez. Cette extension ne stocke aucune donnée et ne partage aucune donnée avec des tiers, sauf l'URL d'image avec le moteur de recherche choisi."
162159
},
163-
164160
"consentAccept": {
165161
"message": "Accepter et Continuer"
166162
},

public/_locales/ja/messages.json

Lines changed: 26 additions & 30 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,9 @@
88
"contextMenuTitle": {
99
"message": "画像で検索"
1010
},
11+
"errorWhileSaving": {
12+
"message": "保存中に不明なエラーが発生しました。"
13+
},
1114
"extensionDescription": {
1215
"message": "コンテキストメニューにオプションを追加することで、さまざまなサービスで類似した画像の検索ができます"
1316
},
@@ -26,6 +29,9 @@
2629
"msgIconUploadNotSquareImage": {
2730
"message": "正方形の画像をアップロードしてください!"
2831
},
32+
"msgIconUploadNotSupported": {
33+
"message": "このブラウザではコンテキストメニューでのアイコンの使用はサポートされていません。"
34+
},
2935
"msgSuccessSaveOptions": {
3036
"message": "保存しました!"
3137
},
@@ -61,6 +67,9 @@
6167
"providerURLPlaceholder": {
6268
"message": "http(s)://が始まり、画像のURLの代わりに%sが..."
6369
},
70+
"providerURLPlaceholderPOST": {
71+
"message": "http(s)://で始める..."
72+
},
6473
"providerURLPlaceholderError": {
6574
"message": "$index$番目の検索エンジンのURLは無効です。http(s)://が始まり、画像URLのプレースホルダーとして\"%s \"を使用してください",
6675
"placeholders": {
@@ -69,46 +78,34 @@
6978
}
7079
}
7180
},
72-
"restoreDefaultSearchProviders": {
73-
"message": "デフォルトを復元"
74-
},
75-
"saveOptions": {
76-
"message": "オプションを保存"
77-
},
78-
"redirectingToSearchEngine": {
79-
"message": "検索エンジンにリダイレクト中..."
80-
},
81-
"contentTypeLabel": {
82-
"message": "コンテンツタイプ"
81+
"providerURLPlaceholderErrorPOST": {
82+
"message": "検索エンジン $index$ のURLが無効です。http(s)://で始めてください。",
83+
"placeholders": {
84+
"index": {
85+
"content": "$1"
86+
}
87+
}
8388
},
8489
"doNotEncodeUrlLabel": {
8590
"message": "URLをエンコードしない"
8691
},
87-
"errorWhileSaving": {
88-
"message": "保存中に不明なエラーが発生しました。"
92+
"stripProtocolLabel": {
93+
"message": "画像URLからプロトコルを削除"
8994
},
9095
"httpMethodLabel": {
9196
"message": "HTTPメソッド"
9297
},
93-
"msgIconUploadNotSupported": {
94-
"message": "このブラウザではコンテキストメニューでのアイコンの使用はサポートされていません。"
95-
},
9698
"postFieldNameLabel": {
9799
"message": "POSTフィールド名"
98100
},
99-
"postFieldNamePlaceholder": {
100-
"message": "url"
101+
"contentTypeLabel": {
102+
"message": "コンテンツタイプ"
101103
},
102-
"providerURLPlaceholderErrorPOST": {
103-
"message": "検索エンジン $index$ のURLが無効です。http(s)://で始めてください。",
104-
"placeholders": {
105-
"index": {
106-
"content": "$1"
107-
}
108-
}
104+
"restoreDefaultSearchProviders": {
105+
"message": "デフォルトを復元"
109106
},
110-
"providerURLPlaceholderPOST": {
111-
"message": "http(s)://で始める..."
107+
"saveOptions": {
108+
"message": "オプションを保存"
112109
},
113110
"searchAllByDefault": {
114111
"message": "デフォルトですべての検索エンジンを検索"
@@ -122,8 +119,8 @@
122119
"showOpenAllAtTop": {
123120
"message": "'すべて開く'を上部に表示"
124121
},
125-
"stripProtocolLabel": {
126-
"message": "画像URLからプロトコルを削除"
122+
"redirectingToSearchEngine": {
123+
"message": "検索エンジンにリダイレクト中..."
127124
},
128125
"privacyPolicy": {
129126
"message": "プライバシーポリシー"
@@ -160,7 +157,6 @@
160157
"consentHowDataUsedDescription": {
161158
"message": "画像URLは、選択したサービスで逆画像検索を実行するためにのみ使用されます。この拡張機能はデータを保存せず、選択した検索エンジンへの画像URL以外は第三者とデータを共有しません。"
162159
},
163-
164160
"consentAccept": {
165161
"message": "同意して続行"
166162
},

0 commit comments

Comments
 (0)