diff --git a/src/i18n/index.js b/src/i18n/index.js
index 700087b..87e7f5c 100644
--- a/src/i18n/index.js
+++ b/src/i18n/index.js
@@ -3,6 +3,25 @@ import VueI18n from 'vue-i18n';
import en from './en.json';
import fr from './fr.json';
+import oc from './oc.json';
+
+export const AVAILABLE_LOCALES = [
+ {
+ iso: 'en',
+ name: 'English',
+ messages: en,
+ },
+ {
+ iso: 'fr',
+ name: 'French',
+ messages: fr,
+ },
+ {
+ iso: 'oc',
+ name: 'Occitan',
+ messages: oc,
+ },
+];
export function getBrowserLocales() {
let langs = [];
@@ -31,10 +50,10 @@ export function getBrowserLocales() {
Vue.use(VueI18n);
-export const messages = {
- en,
- fr,
-};
+export const messages = {};
+AVAILABLE_LOCALES.forEach((item) => {
+ messages[item.iso] = item.messages;
+});
export default new VueI18n({
messages,
diff --git a/src/i18n/oc.json b/src/i18n/oc.json
new file mode 100644
index 0000000..5ab1196
--- /dev/null
+++ b/src/i18n/oc.json
@@ -0,0 +1,78 @@
+{
+ "about": {
+ "availableReportsTitle": "Los senhalaments disponibles pel moment son :",
+ "geolocationDescription": "Dins la version actuala, v\u00f2stra posicion es tractada dir\u00e8ctament per v\u00f2stre periferic e pas jamai enviada a un servici ext\u00e8rne. Lo fons de mapa es telecargat a la demanda del provesidor de teulas estant e a doncas acc\u00e8s a una estimacion de la posicion mostrada. Se refusatz lo partiment de v\u00f2stra geolocalizacion, poiretz picar una adre\u00e7a a la man all\u00f2c mas perdretz las foncionalitats avan\u00e7adas qu'utilizan la geolocalizacion.",
+ "license": "Lo c\u00f2di font es jos lic\u00e9ncia MIT (c\u00f2di font). Las ic\u00f2nas son basadas sus d'\u00f2bras de Wikimedia, Vecteezy, Pixabay o Flaticon. Las teulas de fons venon Carto.com o Thunderforest, gr\u00e0cia als contributors OpenStreetMap e a Leaflet. Los senhalaments son disponibles jos lic\u00e9ncia ODbL.",
+ "summary": "Aquesta aplicacion vos permet de senhalar e partejar de probl\u00e8mas amb los itineraris ciclables.",
+ "usage": "Utilizacion",
+ "usageDescription": "Utilizatz lo boton en bas a man drecha per ajustar un senhalament a v\u00f2stra empla\u00e7ament actual. Per ajustar un senhalament endac\u00f2m mai, tocatz l'empla\u00e7ament volgut sus la mapa. Tocatz un marcador sus la mapa per mostrar mai d'informacions e senhalar es encara present o non."
+ },
+ "buttons": {
+ "close": "Tampar",
+ "downvote": "Infirmar",
+ "menu": "Men\u00fa",
+ "recenterMap": "Recentrar la mapa",
+ "reportProblem": "N\u00f2u senhalament",
+ "upvote": "Confirmar"
+ },
+ "geolocation": {
+ "errorFetchingPosition": "Impossible de recuperar v\u00f2stra posicion :",
+ "fetching": "En esp\u00e8ra de v\u00f2stra posicion\u2026",
+ "geolocation": "Geolocalizacion",
+ "permissionDenied": "l'acc\u00e8s a v\u00f2stra posicion es estat refusat.",
+ "positionUnavailable": "impossible de determinar v\u00f2stra posicion.",
+ "timeout": "v\u00f2stra posicion tarda tr\u00f2p a \u00e8sser recuperada.",
+ "unavailable": "O planh\u00e8m, la geolocalizacion es pas disponibla dins v\u00f2stre navigador."
+ },
+ "intro": {
+ "checkingPermissions": "Verificacion de las autorizacions",
+ "next": "Seguent",
+ "ready": "Tot es pr\u00e8st !",
+ "reportTypes": "Tipes de senhalaments",
+ "startReporting": "Comen\u00e7ar de senhalar !",
+ "welcome": "La benvenguda !"
+ },
+ "locationPicker": {
+ "invalidSelection": "Seleccion invalida",
+ "pickALocationManually": "causir una posicion manualament"
+ },
+ "menu": {
+ "About": "Ajuda",
+ "Map": "Mapa",
+ "Settings": "Prefer\u00e9ncias"
+ },
+ "misc": {
+ "discard": "Anullar",
+ "or": "o",
+ "retry": "Ensajar tornamai",
+ "spaceBeforeDoublePunctuations": " "
+ },
+ "reportCard": {
+ "Reported": "Senhalat"
+ },
+ "reportDialog": {
+ "unableToSendDescription": "Una error ret empacha lo mandad\u00eds del darri\u00e8r senhalament.",
+ "unableToSendTitle": "Impossible d'enviar lo darri\u00e8r senhalament"
+ },
+ "reportLabels": {
+ "accident": "Accident",
+ "accidentDescription": "Un accident sus la rota (automaticament suprimit apr\u00e8p una ora).",
+ "gcum": "GCUM",
+ "gcumDescription": "Una auto (mal) estacionada sus la pista ciclabla (automaticament suprimit apr\u00e8p una ora).",
+ "interrupt": "Interruption",
+ "interruptDescription": "Una interrupcion d'itinerari ciclable (\u00f2bras, arr\u00e8st inesperat d'una pista ciclabla, etc)",
+ "misc": "Autre",
+ "miscDescription": "Un probl\u00e8ma qu'a pas cap de categoria.",
+ "obstacle": "Obstacle",
+ "obstacleDescription": "Un obstacle sus la pista ciclabla (granit de bordadura, encombrants, etc)",
+ "pothole": "Trauc",
+ "potholeDescription": "Un trauc per la rota."
+ },
+ "settings": {
+ "locale": "Lenga",
+ "preventSuspend": "Empachar lo periferic de passar en velha",
+ "save": "Salvar",
+ "skipOnboarding": "Passar l'introduccion",
+ "tileServer": "Servidor de teulas per la mapa"
+ }
+}
diff --git a/src/views/Settings.vue b/src/views/Settings.vue
index 2382363..5e3683f 100644
--- a/src/views/Settings.vue
+++ b/src/views/Settings.vue
@@ -7,6 +7,8 @@
@@ -37,12 +39,12 @@