Change translation format to JSON

pull/1/head
yflory 6 years ago
parent d97ada3e26
commit 6018f57ec1

@ -25,6 +25,22 @@ var getLanguage = messages._getLanguage = function () {
}; };
var language = getLanguage(); var language = getLanguage();
// Translations files were migrated from requirejs modules to json.
// To avoid asking every administrator to update their customized translation files,
// we use a requirejs map to redirect the old path to the new one and to use the
// requirejs json plugin
var reqPaths = {
"/common/translations/messages.js":"json!/common/translations/messages.json"
};
Object.keys(map).forEach(function (k) {
reqPaths["/common/translations/messages."+k+".js"] = "json!/common/translations/messages."+k+".json";
});
require.config({
map: {
"*": reqPaths
}
});
var req = ['/common/common-util.js', '/customize/translations/messages.js']; var req = ['/common/common-util.js', '/customize/translations/messages.js'];
if (language && map[language]) { req.push('/customize/translations/messages.' + language + '.js'); } if (language && map[language]) { req.push('/customize/translations/messages.' + language + '.js'); }

@ -2,7 +2,7 @@ define([
'jquery', 'jquery',
'/common/common-util.js', '/common/common-util.js',
'/customize/messages.js', '/customize/messages.js',
'/customize/translations/messages.js', 'json!/common/translations/messages.json',
], function ($, Util, Messages, English) { ], function ($, Util, Messages, English) {
var $body = $('body'); var $body = $('body');

@ -5,6 +5,9 @@ define([
// fix up locations so that relative urls work. // fix up locations so that relative urls work.
baseUrl: window.location.pathname, baseUrl: window.location.pathname,
paths: { paths: {
// json plugin
text: '/bower_components/requirejs-plugins/lib/text',
json: '/bower_components/requirejs-plugins/src/json',
// jquery declares itself as literally "jquery" so it cannot be pulled by path :( // jquery declares itself as literally "jquery" so it cannot be pulled by path :(
"jquery": "/bower_components/jquery/dist/jquery.min", "jquery": "/bower_components/jquery/dist/jquery.min",
// json.sortify same // json.sortify same

@ -20,7 +20,6 @@
"button_newslide": "Nouvelle présentation", "button_newslide": "Nouvelle présentation",
"button_newwhiteboard": "Nouveau tableau blanc", "button_newwhiteboard": "Nouveau tableau blanc",
"button_newkanban": "Nouveau kanban", "button_newkanban": "Nouveau kanban",
"updated_0_common_connectionLost": "<b>Connexion au serveur perdue</b><br>Vous êtes désormais en mode lecture seule jusqu'au retour de la connexion.",
"common_connectionLost": "<b>Connexion au serveur perdue</b><br>Vous êtes désormais en mode lecture seule jusqu'au retour de la connexion.", "common_connectionLost": "<b>Connexion au serveur perdue</b><br>Vous êtes désormais en mode lecture seule jusqu'au retour de la connexion.",
"websocketError": "Impossible de se connecter au serveur WebSocket...", "websocketError": "Impossible de se connecter au serveur WebSocket...",
"typeError": "Ce pad n'est pas compatible avec l'application sélectionnée", "typeError": "Ce pad n'est pas compatible avec l'application sélectionnée",
@ -81,7 +80,6 @@
"orangeLight": "Votre connexion est lente, ce qui réduit la qualité de l'éditeur", "orangeLight": "Votre connexion est lente, ce qui réduit la qualité de l'éditeur",
"redLight": "Vous êtes déconnecté de la session", "redLight": "Vous êtes déconnecté de la session",
"pinLimitReached": "Vous avez atteint votre limite de stockage", "pinLimitReached": "Vous avez atteint votre limite de stockage",
"updated_0_pinLimitReachedAlert": "Vous avez atteint votre limite de stockage. Les nouveaux pads ne seront pas enregistrés dans votre CryptDrive.<br>Vous pouvez soit supprimer des pads de votre CryptDrive, soit vous <a href=\"https://accounts.cryptpad.fr/#!on={0}\" target=\"_blank\">abonner à une offre premium</a> pour augmenter la limite maximale.",
"pinLimitReachedAlert": "Vous avez atteint votre limite de stockage. Les nouveaux pads ne seront pas enregistrés dans votre CryptDrive.<br>Vous pouvez soit supprimer des pads de votre CryptDrive, soit vous <a href=\"https://accounts.cryptpad.fr/#!on={0}\" target=\"_blank\">abonner à une offre premium</a> pour augmenter la limite maximale.", "pinLimitReachedAlert": "Vous avez atteint votre limite de stockage. Les nouveaux pads ne seront pas enregistrés dans votre CryptDrive.<br>Vous pouvez soit supprimer des pads de votre CryptDrive, soit vous <a href=\"https://accounts.cryptpad.fr/#!on={0}\" target=\"_blank\">abonner à une offre premium</a> pour augmenter la limite maximale.",
"pinLimitReachedAlertNoAccounts": "Vous avez atteint votre limite de stockage", "pinLimitReachedAlertNoAccounts": "Vous avez atteint votre limite de stockage",
"pinLimitNotPinned": "Vous avez atteint votre limite de stockage.<br>Ce pad n'est pas enregistré dans votre CryptDrive.", "pinLimitNotPinned": "Vous avez atteint votre limite de stockage.<br>Ce pad n'est pas enregistré dans votre CryptDrive.",
@ -352,7 +350,6 @@
"fm_info_unsorted": "Contient tous les pads que vous avez ouvert et qui ne sont pas triés dans \"Documents\" ou déplacés vers la \"Corbeille\".", "fm_info_unsorted": "Contient tous les pads que vous avez ouvert et qui ne sont pas triés dans \"Documents\" ou déplacés vers la \"Corbeille\".",
"fm_info_template": "Contient tous les fichiers que vous avez sauvés en tant que modèle afin de les réutiliser lors de la création d'un nouveau pad.", "fm_info_template": "Contient tous les fichiers que vous avez sauvés en tant que modèle afin de les réutiliser lors de la création d'un nouveau pad.",
"fm_info_recent": "Liste les derniers pads que vous avez modifiés ou ouverts.", "fm_info_recent": "Liste les derniers pads que vous avez modifiés ou ouverts.",
"updated_0_fm_info_trash": "Vider la corbeille permet de libérer de l'espace dans votre CryptDrive",
"fm_info_trash": "Vider la corbeille permet de libérer de l'espace dans votre CryptDrive", "fm_info_trash": "Vider la corbeille permet de libérer de l'espace dans votre CryptDrive",
"fm_info_allFiles": "Contient tous les fichiers de \"Documents\", \"Fichiers non triés\" et \"Corbeille\". Vous ne pouvez pas supprimer ou déplacer des fichiers depuis cet endroit.", "fm_info_allFiles": "Contient tous les fichiers de \"Documents\", \"Fichiers non triés\" et \"Corbeille\". Vous ne pouvez pas supprimer ou déplacer des fichiers depuis cet endroit.",
"fm_info_anonymous": "Vous n'êtes pas connecté, ces pads seront donc supprimés après 3 mois d'inactivité (<a href=\"https://blog.cryptpad.fr/2017/05/17/You-gotta-log-in/\" target=\"_blank\">découvrez pourquoi</a>). Ils sont stockés dans votre navigateur donc nettoyer votre historique peut les faire disparaître.<br><a href=\"/register/\">Inscrivez-vous</a> ou <a href=\"/login/\">connectez-vous</a> pour les maintenir en vie.", "fm_info_anonymous": "Vous n'êtes pas connecté, ces pads seront donc supprimés après 3 mois d'inactivité (<a href=\"https://blog.cryptpad.fr/2017/05/17/You-gotta-log-in/\" target=\"_blank\">découvrez pourquoi</a>). Ils sont stockés dans votre navigateur donc nettoyer votre historique peut les faire disparaître.<br><a href=\"/register/\">Inscrivez-vous</a> ou <a href=\"/login/\">connectez-vous</a> pour les maintenir en vie.",

@ -20,7 +20,6 @@
"button_newslide": "New Presentation", "button_newslide": "New Presentation",
"button_newwhiteboard": "New Whiteboard", "button_newwhiteboard": "New Whiteboard",
"button_newkanban": "New Kanban", "button_newkanban": "New Kanban",
"updated_0_common_connectionLost": "<b>Server Connection Lost</b><br>You're now in read-only mode until the connection is back.",
"common_connectionLost": "<b>Server Connection Lost</b><br>You're now in read-only mode until the connection is back.", "common_connectionLost": "<b>Server Connection Lost</b><br>You're now in read-only mode until the connection is back.",
"websocketError": "Unable to connect to the websocket server...", "websocketError": "Unable to connect to the websocket server...",
"typeError": "This pad is not compatible with the selected application", "typeError": "This pad is not compatible with the selected application",
@ -81,7 +80,6 @@
"orangeLight": "Your slow connection may impact your experience", "orangeLight": "Your slow connection may impact your experience",
"redLight": "You are disconnected from the session", "redLight": "You are disconnected from the session",
"pinLimitReached": "You've reached your storage limit", "pinLimitReached": "You've reached your storage limit",
"updated_0_pinLimitReachedAlert": "You've reached your storage limit. New pads won't be stored in your CryptDrive.<br>You can either remove pads from your CryptDrive or <a href=\"https://accounts.cryptpad.fr/#!on={0}\" target=\"_blank\">subscribe to a premium offer</a> to increase your limit.",
"pinLimitReachedAlert": "You've reached your storage limit. New pads won't be stored in your CryptDrive.<br>You can either remove pads from your CryptDrive or <a href=\"https://accounts.cryptpad.fr/#!on={0}\" target=\"_blank\">subscribe to a premium offer</a> to increase your limit.", "pinLimitReachedAlert": "You've reached your storage limit. New pads won't be stored in your CryptDrive.<br>You can either remove pads from your CryptDrive or <a href=\"https://accounts.cryptpad.fr/#!on={0}\" target=\"_blank\">subscribe to a premium offer</a> to increase your limit.",
"pinLimitReachedAlertNoAccounts": "You've reached your storage limit", "pinLimitReachedAlertNoAccounts": "You've reached your storage limit",
"pinLimitNotPinned": "You've reached your storage limit.<br>This pad is not stored in your CryptDrive.", "pinLimitNotPinned": "You've reached your storage limit.<br>This pad is not stored in your CryptDrive.",
@ -352,7 +350,6 @@
"fm_info_unsorted": "Contains all the files you've visited that are not yet sorted in \"Documents\" or moved to the \"Trash\".", "fm_info_unsorted": "Contains all the files you've visited that are not yet sorted in \"Documents\" or moved to the \"Trash\".",
"fm_info_template": "Contains all the pads stored as templates and that you can re-use when you create a new pad.", "fm_info_template": "Contains all the pads stored as templates and that you can re-use when you create a new pad.",
"fm_info_recent": "List the recently modified or opened pads.", "fm_info_recent": "List the recently modified or opened pads.",
"updated_0_fm_info_trash": "Empty your trash to free space in your CryptDrive.",
"fm_info_trash": "Empty your trash to free space in your CryptDrive.", "fm_info_trash": "Empty your trash to free space in your CryptDrive.",
"fm_info_allFiles": "Contains all the files from \"Documents\", \"Unsorted\" and \"Trash\". You can't move or remove files from here.", "fm_info_allFiles": "Contains all the files from \"Documents\", \"Unsorted\" and \"Trash\". You can't move or remove files from here.",
"fm_info_anonymous": "You are not logged in so your pads will expire after 3 months (<a href=\"https://blog.cryptpad.fr/2017/05/17/You-gotta-log-in/\" target=\"_blank\">find out more</a>). They are stored in your browser so clearing history may make them disappear.<br><a href=\"/register/\">Sign up</a> or <a href=\"/login/\">Log in</a> to keep them alive.<br>", "fm_info_anonymous": "You are not logged in so your pads will expire after 3 months (<a href=\"https://blog.cryptpad.fr/2017/05/17/You-gotta-log-in/\" target=\"_blank\">find out more</a>). They are stored in your browser so clearing history may make them disappear.<br><a href=\"/register/\">Sign up</a> or <a href=\"/login/\">Log in</a> to keep them alive.<br>",

Loading…
Cancel
Save