mirror of
https://github.com/laurent22/joplin.git
synced 2024-12-24 10:27:10 +02:00
Updated translation
This commit is contained in:
parent
12b6902a49
commit
9c70e9b233
@ -17,8 +17,6 @@ import { fileExtension } from 'lib/path-utils.js';
|
||||
import { _, setLocale, defaultLocale, closestSupportedLocale } from 'lib/locale.js';
|
||||
import os from 'os';
|
||||
import fs from 'fs-extra';
|
||||
import yargParser from 'yargs-parser';
|
||||
import { handleAutocompletion, installAutocompletionFile } from './autocompletion.js';
|
||||
import { cliUtils } from './cli-utils.js';
|
||||
const EventEmitter = require('events');
|
||||
|
||||
@ -28,7 +26,6 @@ class Application {
|
||||
this.showPromptString_ = true;
|
||||
this.logger_ = new Logger();
|
||||
this.dbLogger_ = new Logger();
|
||||
this.autocompletion_ = { active: false };
|
||||
this.commands_ = {};
|
||||
this.commandMetadata_ = null;
|
||||
this.activeCommand_ = null;
|
||||
@ -202,37 +199,6 @@ class Application {
|
||||
continue;
|
||||
}
|
||||
|
||||
if (arg == '--autocompletion') {
|
||||
this.autocompletion_.active = true;
|
||||
argv.splice(0, 1);
|
||||
continue;
|
||||
}
|
||||
|
||||
if (arg == '--ac-install') {
|
||||
this.autocompletion_.install = true;
|
||||
argv.splice(0, 1);
|
||||
continue;
|
||||
}
|
||||
|
||||
if (arg == '--ac-current') {
|
||||
if (!nextArg) throw new Error(_('Usage: %s', '--ac-current <num>'));
|
||||
this.autocompletion_.current = nextArg;
|
||||
argv.splice(0, 2);
|
||||
continue;
|
||||
}
|
||||
|
||||
if (arg == '--ac-line') {
|
||||
if (!nextArg) throw new Error(_('Usage: %s', '--ac-line <line>'));
|
||||
let line = nextArg.replace(/\|__QUOTE__\|/g, '"');
|
||||
line = line.replace(/\|__SPACE__\|/g, ' ');
|
||||
line = line.replace(/\|__OPEN_RB__\|/g, '(');
|
||||
line = line.replace(/\|__OPEN_CB__\|/g, ')');
|
||||
line = line.split('|__SEP__|');
|
||||
this.autocompletion_.line = line;
|
||||
argv.splice(0, 2);
|
||||
continue;
|
||||
}
|
||||
|
||||
if (arg.length && arg[0] == '-') {
|
||||
throw new Error(_('Unknown flag: %s', arg));
|
||||
} else {
|
||||
@ -611,10 +577,6 @@ class Application {
|
||||
return this.stdout(object);
|
||||
});
|
||||
|
||||
// this.store_ = createStore(reducer, applyMiddleware(this.generalMiddleware()));
|
||||
// BaseModel.dispatch = this.store().dispatch;
|
||||
// FoldersScreenUtils.dispatch = this.store().dispatch;
|
||||
|
||||
await Setting.load();
|
||||
|
||||
if (Setting.value('firstStart')) {
|
||||
|
@ -1,175 +0,0 @@
|
||||
import { app } from './app.js';
|
||||
import { Note } from 'lib/models/note.js';
|
||||
import { Folder } from 'lib/models/folder.js';
|
||||
import { Tag } from 'lib/models/tag.js';
|
||||
import { cliUtils } from './cli-utils.js';
|
||||
import { _ } from 'lib/locale.js';
|
||||
import fs from 'fs-extra';
|
||||
import os from 'os';
|
||||
import yargParser from 'yargs-parser';
|
||||
|
||||
function autocompletionFileContent(appName, alias) {
|
||||
let content = fs.readFileSync(__dirname + '/autocompletion_template.txt', 'utf8');
|
||||
content = content.replace(/\|__APPNAME__\|/g, appName);
|
||||
|
||||
if (!alias) alias = 'joplin_alias_support_is_disabled';
|
||||
content = content.replace(/\|__APPALIAS__\|/g, alias);
|
||||
|
||||
return content;
|
||||
}
|
||||
|
||||
function autocompletionScriptPath(profileDir) {
|
||||
return profileDir + '/autocompletion.sh';
|
||||
}
|
||||
|
||||
async function installAutocompletionFile(appName, profileDir) {
|
||||
if (process.env.SHELL.indexOf('bash') < 0) {
|
||||
let error = new Error(_('Only Bash is currently supported for autocompletion.'));
|
||||
error.code = 'shellNotSupported';
|
||||
throw error;
|
||||
}
|
||||
|
||||
const alias = await cliUtils.promptInput(_('Autocompletion can be made to work with an alias too (such as a one-letter command like "j").\nIf you would like to enable this, please type the alias now (leave it empty for no alias):'));
|
||||
|
||||
const content = autocompletionFileContent(appName, alias);
|
||||
const filePath = autocompletionScriptPath(profileDir);
|
||||
fs.writeFileSync(filePath, content);
|
||||
|
||||
console.info(_('Created autocompletion script "%s".', filePath));
|
||||
|
||||
const bashProfilePath = os.homedir() + '/.bashrc';
|
||||
|
||||
let bashrcContent = fs.readFileSync(bashProfilePath, 'utf8');
|
||||
|
||||
const lineToAdd = 'source ' + filePath;
|
||||
|
||||
if (bashrcContent.indexOf(lineToAdd) >= 0) {
|
||||
console.info(_('Autocompletion script is already present in "%s".', bashProfilePath));
|
||||
} else {
|
||||
bashrcContent += "\n" + lineToAdd + "\n";
|
||||
fs.writeFileSync(bashProfilePath, bashrcContent);
|
||||
console.info(_('Added autocompletion to "%s".', bashProfilePath));
|
||||
}
|
||||
|
||||
if (alias) {
|
||||
if (bashrcContent.indexOf('alias ' + alias + '=') >= 0) {
|
||||
console.info(_('Alias is already set in "%s".', bashProfilePath));
|
||||
} else {
|
||||
const l = 'alias ' + alias + '=' + appName;
|
||||
bashrcContent += "\n" + l + "\n";
|
||||
fs.writeFileSync(bashProfilePath, bashrcContent);
|
||||
console.info(_('Added alias to "%s".', bashProfilePath));
|
||||
}
|
||||
}
|
||||
|
||||
console.info(_("IMPORTANT: run the following command to initialise autocompletion in the current shell:\nsource '%s'", filePath));
|
||||
}
|
||||
|
||||
async function handleAutocompletion(autocompletion) {
|
||||
let args = autocompletion.line.slice();
|
||||
args.splice(0, 1);
|
||||
let current = autocompletion.current - 1;
|
||||
const currentWord = args[current] ? args[current] : '';
|
||||
|
||||
// Auto-complete the command name
|
||||
|
||||
if (current == 0) {
|
||||
const metadata = await app().commandMetadata();
|
||||
let commandNames = [];
|
||||
for (let n in metadata) {
|
||||
if (!metadata.hasOwnProperty(n)) continue;
|
||||
const md = metadata[n];
|
||||
if (md.hidden) continue;
|
||||
if (currentWord == n) return [n];
|
||||
if (n.indexOf(currentWord) === 0) commandNames.push(n);
|
||||
}
|
||||
return commandNames;
|
||||
}
|
||||
|
||||
const commandName = args[0];
|
||||
const metadata = await app().commandMetadata();
|
||||
const md = metadata[commandName];
|
||||
const options = md && md.options ? md.options : [];
|
||||
|
||||
// Auto-complete the command options
|
||||
|
||||
if (currentWord) {
|
||||
const includeLongs = currentWord.length == 1 ? currentWord.substr(0, 1) == '-' : currentWord.substr(0, 2) == '--';
|
||||
const includeShorts = currentWord.length <= 2 && currentWord.substr(0, 1) == '-' && currentWord.substr(0, 2) != '--';
|
||||
|
||||
if (includeLongs || includeShorts) {
|
||||
const output = [];
|
||||
for (let i = 0; i < options.length; i++) {
|
||||
const flags = cliUtils.parseFlags(options[i][0]);
|
||||
const long = flags.long ? '--' + flags.long : null;
|
||||
const short = flags.short ? '-' + flags.short : null;
|
||||
if (includeLongs && long && long.indexOf(currentWord) === 0) output.push(long);
|
||||
if (includeShorts && short && short.indexOf(currentWord) === 0) output.push(short);
|
||||
}
|
||||
return output;
|
||||
}
|
||||
}
|
||||
|
||||
// Auto-complete the command arguments
|
||||
|
||||
let argIndex = -1;
|
||||
for (let i = 0; i < args.length; i++) {
|
||||
const w = args[i];
|
||||
if (i == 0 || w.indexOf('-') == 0) {
|
||||
continue;
|
||||
}
|
||||
argIndex++;
|
||||
}
|
||||
|
||||
if (argIndex < 0) return [];
|
||||
|
||||
let cmdUsage = yargParser(md.usage)['_'];
|
||||
cmdUsage.splice(0, 1);
|
||||
|
||||
if (cmdUsage.length <= argIndex) return [];
|
||||
|
||||
let argName = cmdUsage[argIndex];
|
||||
argName = cliUtils.parseCommandArg(argName).name;
|
||||
|
||||
if (argName == 'note' || argName == 'note-pattern') {
|
||||
if (!app().currentFolder()) return [];
|
||||
const notes = await Note.previews(app().currentFolder().id, { titlePattern: currentWord + '*' });
|
||||
return notes.map((n) => n.title);
|
||||
}
|
||||
|
||||
if (argName == 'notebook') {
|
||||
const folders = await Folder.search({ titlePattern: currentWord + '*' });
|
||||
return folders.map((n) => n.title);
|
||||
}
|
||||
|
||||
if (argName == 'tag') {
|
||||
let tags = await Tag.search({ titlePattern: currentWord + '*' });
|
||||
return tags.map((n) => n.title);
|
||||
}
|
||||
|
||||
if (argName == 'tag-command') {
|
||||
return filterList(['add', 'remove', 'list'], currentWord);
|
||||
}
|
||||
|
||||
if (argName == 'todo-command') {
|
||||
return filterList(['toggle', 'clear'], currentWord);
|
||||
}
|
||||
|
||||
if (argName == 'command') {
|
||||
const commands = await app().commandNames();
|
||||
return this.filterList(commands, currentWord);
|
||||
}
|
||||
|
||||
return [];
|
||||
}
|
||||
|
||||
function filterList(list, currentWord) {
|
||||
let output = [];
|
||||
for (let i = 0; i < list.length; i++) {
|
||||
if (list[i].indexOf(currentWord) !== 0) continue;
|
||||
output.push(list[i]);
|
||||
}
|
||||
return output;
|
||||
}
|
||||
|
||||
export { handleAutocompletion, installAutocompletionFile, autocompletionScriptPath };
|
@ -1,44 +0,0 @@
|
||||
export IFS=$'\n'
|
||||
|
||||
_|__APPNAME__|_completion() {
|
||||
|
||||
# COMP_WORDS contains each word in the current command, the last one
|
||||
# being the one that needs to be completed. Convert this array
|
||||
# to an "escaped" line which can be passed to the joplin CLI
|
||||
# which will provide the possible autocompletion words.
|
||||
|
||||
ESCAPED_LINE=""
|
||||
for WORD in "${COMP_WORDS[@]}"
|
||||
do
|
||||
if [[ -n $ESCAPED_LINE ]]; then
|
||||
ESCAPED_LINE="$ESCAPED_LINE|__SEP__|"
|
||||
fi
|
||||
WORD="${WORD/\"/|__QUOTE__|}"
|
||||
WORD="${WORD/\\(/|__OPEN_RB__|}"
|
||||
WORD="${WORD/\\)/|__CLOSE_RB__|}"
|
||||
WORD="${WORD/\\ /|__SPACE__|}"
|
||||
ESCAPED_LINE="$ESCAPED_LINE$WORD"
|
||||
done
|
||||
|
||||
# Call joplin with the --autocompletion flag to retrieve the autocompletion
|
||||
# candidates (each on its own line), and put these into COMREPLY.
|
||||
|
||||
# echo "joplindev --autocompletion --ac-current "$COMP_CWORD" --ac-line "$ESCAPED_LINE"" > ~/test.txt
|
||||
|
||||
COMPREPLY=()
|
||||
while read -r line; do
|
||||
COMPREPLY+=("$line")
|
||||
done <<< "$(|__APPNAME__| --autocompletion --ac-current "$COMP_CWORD" --ac-line "$ESCAPED_LINE")"
|
||||
|
||||
# If there's only one element and it's empty, make COMREPLY
|
||||
# completely empty so that default completion takes over
|
||||
# (i.e. regular file completion)
|
||||
# https://stackoverflow.com/a/19062943/561309
|
||||
|
||||
if [[ -z ${COMPREPLY[0]} ]]; then
|
||||
COMPREPLY=()
|
||||
fi
|
||||
}
|
||||
|
||||
complete -o default -F _|__APPNAME__|_completion |__APPNAME__|
|
||||
complete -o default -F _|__APPNAME__|_completion |__APPALIAS__|
|
@ -73,9 +73,9 @@ class Command extends BaseCommand {
|
||||
this.stdout('');
|
||||
this.stdout(_('In any command, a note or notebook can be refered to by title or ID, or using the shortcuts `$n` or `$b` for, respectively, the currently selected note or notebook. `$c` can be used to refer to the currently selected item.'));
|
||||
this.stdout('');
|
||||
this.stdout(_('To move from one widget to another, press Tab or Shift+Tab.'));
|
||||
this.stdout(_('To move from one pane to another, press Tab or Shift+Tab.'));
|
||||
this.stdout(_('Use the arrows and page up/down to scroll the lists and text areas (including this console).'));
|
||||
this.stdout(_('To maximise/minimise the console, press "C".'));
|
||||
this.stdout(_('To maximise/minimise the console, press "TC".'));
|
||||
this.stdout(_('To enter command line mode, press ":"'));
|
||||
this.stdout(_('To exit command line mode, press ESCAPE'));
|
||||
this.stdout(_('For the complete list of available keyboard shortcuts, type `help shortcuts`'));
|
||||
|
@ -15,7 +15,6 @@ npm run build || exit 1
|
||||
rsync -a "$ROOT_DIR/app/gui/" "$ROOT_DIR/build/gui/"
|
||||
|
||||
cp "$ROOT_DIR/package.json" "$ROOT_DIR/build"
|
||||
cp "$ROOT_DIR/app/autocompletion_template.txt" "$ROOT_DIR/build"
|
||||
|
||||
chmod 755 "$ROOT_DIR/build/main.js"
|
||||
|
||||
|
@ -121,43 +121,6 @@ msgstr ""
|
||||
msgid "The command \"%s\" is only available in GUI mode"
|
||||
msgstr ""
|
||||
|
||||
msgid "Only Bash is currently supported for autocompletion."
|
||||
msgstr ""
|
||||
|
||||
msgid ""
|
||||
"Autocompletion can be made to work with an alias too (such as a one-letter "
|
||||
"command like \"j\").\n"
|
||||
"If you would like to enable this, please type the alias now (leave it empty "
|
||||
"for no alias):"
|
||||
msgstr ""
|
||||
|
||||
#, javascript-format
|
||||
msgid "Created autocompletion script \"%s\"."
|
||||
msgstr ""
|
||||
|
||||
#, javascript-format
|
||||
msgid "Autocompletion script is already present in \"%s\"."
|
||||
msgstr ""
|
||||
|
||||
#, javascript-format
|
||||
msgid "Added autocompletion to \"%s\"."
|
||||
msgstr ""
|
||||
|
||||
#, javascript-format
|
||||
msgid "Alias is already set in \"%s\"."
|
||||
msgstr ""
|
||||
|
||||
#, javascript-format
|
||||
msgid "Added alias to \"%s\"."
|
||||
msgstr ""
|
||||
|
||||
#, javascript-format
|
||||
msgid ""
|
||||
"IMPORTANT: run the following command to initialise autocompletion in the "
|
||||
"current shell:\n"
|
||||
"source '%s'"
|
||||
msgstr ""
|
||||
|
||||
#, javascript-format
|
||||
msgid "Missing required argument: %s"
|
||||
msgstr ""
|
||||
@ -271,7 +234,7 @@ msgid ""
|
||||
"note or notebook. `$c` can be used to refer to the currently selected item."
|
||||
msgstr ""
|
||||
|
||||
msgid "To move from one widget to another, press Tab or Shift+Tab."
|
||||
msgid "To move from one pane to another, press Tab or Shift+Tab."
|
||||
msgstr ""
|
||||
|
||||
msgid ""
|
||||
@ -279,7 +242,7 @@ msgid ""
|
||||
"(including this console)."
|
||||
msgstr ""
|
||||
|
||||
msgid "To maximise/minimise the console, press \"C\"."
|
||||
msgid "To maximise/minimise the console, press \"TC\"."
|
||||
msgstr ""
|
||||
|
||||
msgid "To enter command line mode, press \":\""
|
||||
|
@ -16,74 +16,65 @@ msgstr ""
|
||||
"X-Generator: Poedit 2.0.3\n"
|
||||
|
||||
msgid "Give focus to next pane"
|
||||
msgstr ""
|
||||
msgstr "Activer le volet suivant"
|
||||
|
||||
msgid "Give focus to previous pane"
|
||||
msgstr ""
|
||||
msgstr "Activer le volet précédent"
|
||||
|
||||
msgid "Enter command line mode"
|
||||
msgstr ""
|
||||
msgstr "Démarrer le mode de ligne de commande"
|
||||
|
||||
msgid "Exit command line mode"
|
||||
msgstr ""
|
||||
msgstr "Sortir du mode de ligne de commande"
|
||||
|
||||
#, fuzzy
|
||||
msgid "Cancel the current command."
|
||||
msgstr "Annulation..."
|
||||
msgstr "Annuler la commande en cours."
|
||||
|
||||
#, fuzzy
|
||||
msgid "Exit the application."
|
||||
msgstr "Quitter le logiciel."
|
||||
|
||||
msgid "Delete the currently selected note or notebook."
|
||||
msgstr ""
|
||||
msgstr "Supprimer la note ou carnet sélectionné."
|
||||
|
||||
msgid "To delete a tag, untag the associated notes."
|
||||
msgstr ""
|
||||
msgstr "Pour supprimer une vignette, enlever là des notes associées."
|
||||
|
||||
#, fuzzy
|
||||
msgid "Please select the note or notebook to be deleted first."
|
||||
msgstr "Veuillez d'abord sélectionner un carnet."
|
||||
|
||||
#, fuzzy
|
||||
msgid "Set a to-do as completed / not completed"
|
||||
msgstr "Tâches non-complétées et récentes"
|
||||
msgstr "Marquer une tâches comme complétée / non-complétée"
|
||||
|
||||
msgid "[t]oggle [c]onsole between maximized/minimized/hidden/visible."
|
||||
msgstr ""
|
||||
msgstr "Maximiser, minimiser, cacher ou rendre visible la console."
|
||||
|
||||
msgid "Search"
|
||||
msgstr "Chercher"
|
||||
|
||||
msgid "[t]oggle note [m]etadata."
|
||||
msgstr ""
|
||||
msgstr "Afficher/Cacher les métadonnées des notes."
|
||||
|
||||
#, fuzzy
|
||||
msgid "[M]ake a new [n]ote"
|
||||
msgstr "Créer une note."
|
||||
msgstr "Créer une nouvelle note"
|
||||
|
||||
#, fuzzy
|
||||
msgid "[M]ake a new [t]odo"
|
||||
msgstr "Créer une nouvelle tâche."
|
||||
msgstr "Créer une nouvelle tâche"
|
||||
|
||||
#, fuzzy
|
||||
msgid "[M]ake a new note[b]ook"
|
||||
msgstr "Créer un carnet."
|
||||
msgstr "Créer un nouveau carnet"
|
||||
|
||||
#, fuzzy
|
||||
msgid "Copy ([Y]ank) the [n]ote to a notebook."
|
||||
msgstr "Impossible de copier la note dans le carnet \"%s\""
|
||||
msgstr "Copier la note dans un autre carnet."
|
||||
|
||||
#, fuzzy
|
||||
msgid "Move the note to a notebook."
|
||||
msgstr "Impossible de déplacer la note vers le carnet \"%s\""
|
||||
msgstr "Déplacer la note vers un carnet."
|
||||
|
||||
msgid "Press Ctrl+D or type \"exit\" to exit the application"
|
||||
msgstr ""
|
||||
msgstr "Appuyez sur Ctrl+D ou tapez \"exit\" pour sortir du logiciel"
|
||||
|
||||
#, javascript-format
|
||||
msgid "More than one item match \"%s\". Please narrow down your query."
|
||||
msgstr ""
|
||||
msgstr "Plus d'un objet correspond à \"%s\". Veuillez préciser votre requête."
|
||||
|
||||
msgid "No notebook selected."
|
||||
msgstr "Aucun carnet n'est sélectionné."
|
||||
@ -93,7 +84,7 @@ msgstr "Aucun carnet n'est spécifié."
|
||||
|
||||
#, javascript-format
|
||||
msgid "Usage: %s"
|
||||
msgstr "Utilisation : %s."
|
||||
msgstr "Utilisation : %s"
|
||||
|
||||
#, javascript-format
|
||||
msgid "Unknown flag: %s"
|
||||
@ -114,88 +105,50 @@ msgid "Exits the application."
|
||||
msgstr "Quitter le logiciel."
|
||||
|
||||
msgid "Y"
|
||||
msgstr ""
|
||||
msgstr "O"
|
||||
|
||||
msgid "n"
|
||||
msgstr ""
|
||||
msgstr "n"
|
||||
|
||||
msgid "N"
|
||||
msgstr ""
|
||||
msgstr "N"
|
||||
|
||||
msgid "y"
|
||||
msgstr ""
|
||||
msgstr "o"
|
||||
|
||||
#, fuzzy
|
||||
msgid "Cancelling background synchronisation... Please wait."
|
||||
msgstr "Annulation..."
|
||||
msgstr "Annulation de la synchronisation... Veuillez patienter."
|
||||
|
||||
#, javascript-format
|
||||
msgid "The command \"%s\" is only available in GUI mode"
|
||||
msgstr ""
|
||||
|
||||
msgid "Only Bash is currently supported for autocompletion."
|
||||
msgstr ""
|
||||
|
||||
msgid ""
|
||||
"Autocompletion can be made to work with an alias too (such as a one-letter "
|
||||
"command like \"j\").\n"
|
||||
"If you would like to enable this, please type the alias now (leave it empty "
|
||||
"for no alias):"
|
||||
msgstr ""
|
||||
|
||||
#, javascript-format
|
||||
msgid "Created autocompletion script \"%s\"."
|
||||
msgstr ""
|
||||
|
||||
#, javascript-format
|
||||
msgid "Autocompletion script is already present in \"%s\"."
|
||||
msgstr ""
|
||||
|
||||
#, javascript-format
|
||||
msgid "Added autocompletion to \"%s\"."
|
||||
msgstr ""
|
||||
|
||||
#, javascript-format
|
||||
msgid "Alias is already set in \"%s\"."
|
||||
msgstr ""
|
||||
|
||||
#, javascript-format
|
||||
msgid "Added alias to \"%s\"."
|
||||
msgstr ""
|
||||
|
||||
#, javascript-format
|
||||
msgid ""
|
||||
"IMPORTANT: run the following command to initialise autocompletion in the "
|
||||
"current shell:\n"
|
||||
"source '%s'"
|
||||
msgstr ""
|
||||
"La commande \"%s\" est disponible uniquement en mode d'interface graphique"
|
||||
|
||||
#, javascript-format
|
||||
msgid "Missing required argument: %s"
|
||||
msgstr ""
|
||||
msgstr "Paramètre requis manquant : %s"
|
||||
|
||||
#, fuzzy, javascript-format
|
||||
#, javascript-format
|
||||
msgid "%s: %s"
|
||||
msgstr "%s: %d/%d"
|
||||
msgstr "%s : %s"
|
||||
|
||||
msgid "Your choice: "
|
||||
msgstr ""
|
||||
msgstr "Votre choix :"
|
||||
|
||||
#, fuzzy, javascript-format
|
||||
#, javascript-format
|
||||
msgid "Invalid answer: %s"
|
||||
msgstr "Commande invalide : \"%s\""
|
||||
msgstr "Réponse invalide : %s"
|
||||
|
||||
#, fuzzy
|
||||
msgid "Attaches the given file to the note."
|
||||
msgstr "Chercher le motif <pattern> dans toutes les notes."
|
||||
msgstr "Joindre le fichier fourni à la note."
|
||||
|
||||
#, javascript-format
|
||||
msgid "Cannot find \"%s\"."
|
||||
msgstr "Impossible de trouver \"%s\"."
|
||||
|
||||
#, fuzzy, javascript-format
|
||||
#, javascript-format
|
||||
msgid "Cannot access %s"
|
||||
msgstr "Impossible de trouver \"%s\"."
|
||||
msgstr "Impossible d'accéder à %s"
|
||||
|
||||
msgid "Displays the given note."
|
||||
msgstr "Affiche la note."
|
||||
@ -212,7 +165,6 @@ msgstr ""
|
||||
"fournie, la valeur de [nom] est affichée. Si ni le [nom] ni la [valeur] ne "
|
||||
"sont fournis, la configuration complète est affichée."
|
||||
|
||||
#, fuzzy
|
||||
msgid "Also displays unset and hidden config variables."
|
||||
msgstr "Afficher également les variables cachées."
|
||||
|
||||
@ -224,20 +176,19 @@ msgstr "%s = %s (%s)"
|
||||
msgid "%s = %s"
|
||||
msgstr "%s = %s"
|
||||
|
||||
#, fuzzy
|
||||
msgid ""
|
||||
"Duplicates the notes matching <note> to [notebook]. If no notebook is "
|
||||
"specified the note is duplicated in the current notebook."
|
||||
msgstr ""
|
||||
"Copie les notes correspondant à [nom] vers [carnet]. Si aucun carnet n'est "
|
||||
"spécifié, la note est dupliqué sur place."
|
||||
"Copie les notes correspondant à <nom> vers [carnet]. Si aucun carnet n'est "
|
||||
"spécifié, la note est dupliquée sur place."
|
||||
|
||||
msgid "Marks a to-do as done."
|
||||
msgstr ""
|
||||
msgstr "Marquer la tâche comme complétée."
|
||||
|
||||
#, javascript-format
|
||||
msgid "Note is not a to-do: \"%s\""
|
||||
msgstr ""
|
||||
msgstr "La note n'est pas une tâche : \"%s\""
|
||||
|
||||
msgid "Edit note."
|
||||
msgstr "Editer la note."
|
||||
@ -260,66 +211,72 @@ msgstr ""
|
||||
"Edition de la note en cours. Fermez l'éditeur de texte pour retourner à "
|
||||
"l'invite de commande."
|
||||
|
||||
#, fuzzy
|
||||
msgid "Note has been saved."
|
||||
msgstr "Aucun carnet n'est spécifié."
|
||||
msgstr "La note a été enregistrée."
|
||||
|
||||
msgid ""
|
||||
"Exports Joplin data to the given directory. By default, it will export the "
|
||||
"complete database including notebooks, notes, tags and resources."
|
||||
msgstr ""
|
||||
"Exporter les données de Joplin vers le dossier fourni. Par défaut, la base "
|
||||
"de donnée complète sera exportée, y compris les carnets, notes, tags et "
|
||||
"resources."
|
||||
|
||||
#, fuzzy
|
||||
msgid "Exports only the given note."
|
||||
msgstr "Affiche la note."
|
||||
msgstr "Exporter uniquement la note spécifiée."
|
||||
|
||||
#, fuzzy
|
||||
msgid "Exports only the given notebook."
|
||||
msgstr "Affiche la note."
|
||||
msgstr "Exporter uniquement le carnet spécifié."
|
||||
|
||||
msgid "Displays a geolocation URL for the note."
|
||||
msgstr "Afficher l'URL de l'emplacement de la note."
|
||||
|
||||
#, fuzzy
|
||||
msgid "Displays usage information."
|
||||
msgstr "Affiche les informations de version"
|
||||
msgstr "Affiche les informations d'utilisation."
|
||||
|
||||
msgid "Shortcuts are not available in CLI mode."
|
||||
msgstr ""
|
||||
msgstr "Les raccourcis ne sont pas disponible en mode de ligne de commande."
|
||||
|
||||
msgid "Type `help [command]` for more information about a command."
|
||||
msgstr ""
|
||||
msgstr "Tapez `help [command]` pour plus d'information sur une commande."
|
||||
|
||||
msgid "The possible commands are:"
|
||||
msgstr ""
|
||||
msgstr "Les commandes possibles sont :"
|
||||
|
||||
msgid ""
|
||||
"In any command, a note or notebook can be refered to by title or ID, or "
|
||||
"using the shortcuts `$n` or `$b` for, respectively, the currently selected "
|
||||
"note or notebook. `$c` can be used to refer to the currently selected item."
|
||||
msgstr ""
|
||||
"Dans n'importe quelle commande, une note ou carnet peut être référé par "
|
||||
"titre ou identifiant, ou en utilisant les raccourcis `$n` et `$b` pour, "
|
||||
"respectivement, la note sélectionnée et le carnet sélectionné. `$c` peut "
|
||||
"être utilisé pour faire référence à l'objet sélectionné en cours."
|
||||
|
||||
msgid "To move from one widget to another, press Tab or Shift+Tab."
|
||||
msgstr ""
|
||||
msgid "To move from one pane to another, press Tab or Shift+Tab."
|
||||
msgstr "Pour aller d'un volet à l'autre, pressez Tab ou Maj+Tab."
|
||||
|
||||
msgid ""
|
||||
"Use the arrows and page up/down to scroll the lists and text areas "
|
||||
"(including this console)."
|
||||
msgstr ""
|
||||
"Utilisez les touches fléchées et page précédente/suivante pour faire défiler "
|
||||
"les listes et zones de texte (y compris cette console)."
|
||||
|
||||
#, fuzzy
|
||||
msgid "To maximise/minimise the console, press \"C\"."
|
||||
msgstr "Quitter le logiciel."
|
||||
msgid "To maximise/minimise the console, press \"TC\"."
|
||||
msgstr "Pour maximiser ou minimiser la console, pressez \"tc\"."
|
||||
|
||||
msgid "To enter command line mode, press \":\""
|
||||
msgstr ""
|
||||
msgstr "Pour démarrer le mode ligne de commande, pressez \":\""
|
||||
|
||||
msgid "To exit command line mode, press ESCAPE"
|
||||
msgstr ""
|
||||
msgstr "Pour sortir du mode ligne de commande, pressez ECHAP"
|
||||
|
||||
msgid ""
|
||||
"For the complete list of available keyboard shortcuts, type `help shortcuts`"
|
||||
msgstr ""
|
||||
"Pour la liste complète des raccourcis disponibles, tapez `help shortcuts`"
|
||||
|
||||
msgid "Imports an Evernote notebook file (.enex file)."
|
||||
msgstr "Importer un carnet Evernote (fichier .enex)."
|
||||
@ -367,11 +324,10 @@ msgstr "Etiquettes : %d."
|
||||
msgid "Importing notes..."
|
||||
msgstr "Importation des notes..."
|
||||
|
||||
#, fuzzy, javascript-format
|
||||
#, javascript-format
|
||||
msgid "The notes have been imported: %s"
|
||||
msgstr "Aucun carnet n'est spécifié."
|
||||
msgstr "Les notes ont été importées : %s"
|
||||
|
||||
#, fuzzy
|
||||
msgid ""
|
||||
"Displays the notes in the current notebook. Use `ls /` to display the list "
|
||||
"of notebooks."
|
||||
@ -389,7 +345,6 @@ msgstr ""
|
||||
msgid "Reverses the sorting order."
|
||||
msgstr "Inverser l'ordre."
|
||||
|
||||
#, fuzzy
|
||||
msgid ""
|
||||
"Displays only the items of the specific type(s). Can be `n` for notes, `t` "
|
||||
"for to-dos, or `nt` for notes and to-dos (eg. `-tt` would display only the "
|
||||
@ -402,7 +357,6 @@ msgstr ""
|
||||
msgid "Either \"text\" or \"json\""
|
||||
msgstr "Soit \"text\" soit \"json\""
|
||||
|
||||
#, fuzzy
|
||||
msgid ""
|
||||
"Use long list format. Format is ID, NOTE_COUNT (for notebook), DATE, "
|
||||
"TODO_CHECKED (for to-dos), TITLE"
|
||||
@ -422,36 +376,30 @@ msgstr "Créer une note."
|
||||
msgid "Notes can only be created within a notebook."
|
||||
msgstr "Les notes ne peuvent être créées que dans un carnet."
|
||||
|
||||
#, fuzzy
|
||||
msgid "Creates a new to-do."
|
||||
msgstr "Créer une nouvelle tâche."
|
||||
|
||||
#, fuzzy
|
||||
msgid "Moves the notes matching <note> to [notebook]."
|
||||
msgstr "Supprime les objets correspondants à <motif>."
|
||||
msgstr "Déplacer les notes correspondant à <note> vers [notebook]."
|
||||
|
||||
msgid "Renames the given <item> (note or notebook) to <name>."
|
||||
msgstr ""
|
||||
msgstr "Renommer l'objet <item> (note ou carnet) en <name>."
|
||||
|
||||
#, fuzzy
|
||||
msgid "Deletes the given notebook."
|
||||
msgstr "Supprime le carnet."
|
||||
msgstr "Supprimer le carnet."
|
||||
|
||||
#, fuzzy
|
||||
msgid "Deletes the notebook without asking for confirmation."
|
||||
msgstr "Supprime les objets sans demander la confirmation."
|
||||
msgstr "Supprimer le carnet sans demander la confirmation."
|
||||
|
||||
#, javascript-format
|
||||
msgid "Delete notebook \"%s\"?"
|
||||
msgstr "Supprimer le carnet \"%s\" ?"
|
||||
|
||||
#, fuzzy
|
||||
msgid "Deletes the notes matching <note-pattern>."
|
||||
msgstr "Supprime les objets correspondants à <motif>."
|
||||
msgstr "Supprimer les notes correspondants à <note-pattern>."
|
||||
|
||||
#, fuzzy
|
||||
msgid "Deletes the notes without asking for confirmation."
|
||||
msgstr "Supprime les objets sans demander la confirmation."
|
||||
msgstr "Supprimer les notes sans demander la confirmation."
|
||||
|
||||
#, javascript-format
|
||||
msgid "%d notes match this pattern. Delete them?"
|
||||
@ -486,10 +434,13 @@ msgid ""
|
||||
"taking place, you may delete the lock file at \"%s\" and resume the "
|
||||
"operation."
|
||||
msgstr ""
|
||||
"La synchronisation est déjà en cours ou ne s'est pas interrompue "
|
||||
"correctement. Si vous savez qu'aucune autre synchronisation est en cours, "
|
||||
"vous pouvez supprimer le fichier \"%s\" pour reprendre l'opération."
|
||||
|
||||
msgid ""
|
||||
"Authentication was not completed (did not receive an authentication token)."
|
||||
msgstr ""
|
||||
msgstr "Impossible d'autoriser le logiciel (jeton d'identification non-reçu)."
|
||||
|
||||
#, javascript-format
|
||||
msgid "Synchronisation target: %s (%s)"
|
||||
@ -501,40 +452,36 @@ msgstr "Impossible d'initialiser la synchronisation."
|
||||
msgid "Starting synchronisation..."
|
||||
msgstr "Commencement de la synchronisation..."
|
||||
|
||||
#, fuzzy
|
||||
msgid "Cancelling... Please wait."
|
||||
msgstr "Annulation..."
|
||||
msgstr "Annulation... Veuillez attendre."
|
||||
|
||||
#, fuzzy
|
||||
msgid ""
|
||||
"<tag-command> can be \"add\", \"remove\" or \"list\" to assign or remove "
|
||||
"[tag] from [note], or to list the notes associated with [tag]. The command "
|
||||
"`tag list` can be used to list all the tags."
|
||||
msgstr ""
|
||||
"<command> peut être \"add\", \"remove\" ou \"list\" pour assigner ou enlever "
|
||||
"l'étiquette [tag] de la [note], our pour lister les notes associées avec "
|
||||
"l'étiquette [tag]. La commande `tag list` peut être utilisée pour lister les "
|
||||
"étiquettes."
|
||||
"<tag-command> peut être \"add\", \"remove\" ou \"list\" pour assigner ou "
|
||||
"enlever l'étiquette [tag] de la [note], our pour lister les notes associées "
|
||||
"avec l'étiquette [tag]. La commande `tag list` peut être utilisée pour "
|
||||
"lister les étiquettes."
|
||||
|
||||
#, javascript-format
|
||||
msgid "Invalid command: \"%s\""
|
||||
msgstr "Commande invalide : \"%s\""
|
||||
|
||||
#, fuzzy
|
||||
msgid ""
|
||||
"<todo-command> can either be \"toggle\" or \"clear\". Use \"toggle\" to "
|
||||
"toggle the given to-do between completed and uncompleted state (If the "
|
||||
"target is a regular note it will be converted to a to-do). Use \"clear\" to "
|
||||
"convert the to-do back to a regular note."
|
||||
msgstr ""
|
||||
"Gère le status des tâches. <action> peut être \"toggle\" ou \"clear\". "
|
||||
"Gère le status des tâches. <todo-command> peut être \"toggle\" ou \"clear\". "
|
||||
"Utilisez \"toggle\" pour basculer la tâche entre le status terminé et non-"
|
||||
"terminé (Si la cible est une note, elle sera convertie en tâche). Utilisez "
|
||||
"\"clear\" pour convertir la tâche en note."
|
||||
|
||||
#, fuzzy
|
||||
msgid "Marks a to-do as non-completed."
|
||||
msgstr "Tâches non-complétées et récentes"
|
||||
msgstr "Marquer une tâche comme non-complétée."
|
||||
|
||||
msgid ""
|
||||
"Switches to [notebook] - all further operations will happen within this "
|
||||
@ -550,22 +497,22 @@ msgid "%s %s (%s)"
|
||||
msgstr "%s %s (%s)"
|
||||
|
||||
msgid "Enum"
|
||||
msgstr ""
|
||||
msgstr "Enum"
|
||||
|
||||
#, javascript-format
|
||||
msgid "Type: %s."
|
||||
msgstr ""
|
||||
msgstr "Type : %s."
|
||||
|
||||
#, javascript-format
|
||||
msgid "Possible values: %s."
|
||||
msgstr ""
|
||||
msgstr "Valeurs possibles : %s."
|
||||
|
||||
#, javascript-format
|
||||
msgid "Default: %s"
|
||||
msgstr ""
|
||||
msgstr "Défaut : %s"
|
||||
|
||||
msgid "Possible keys/values:"
|
||||
msgstr ""
|
||||
msgstr "Clefs/Valeurs possibles :"
|
||||
|
||||
msgid "Fatal error:"
|
||||
msgstr "Erreur fatale :"
|
||||
@ -584,12 +531,17 @@ msgid ""
|
||||
"any files outside this directory nor to any other personal data. No data "
|
||||
"will be shared with any third party."
|
||||
msgstr ""
|
||||
"Veuillez ouvrir le lien ci-dessous dans votre browser pour authentifier le "
|
||||
"logiciel. Joplin va créer un répertoire \"Apps/Joplin\" et lire/écrira des "
|
||||
"fichiers uniquement dans ce répertoire. Le logiciel n'aura pas d'accès à "
|
||||
"aucun fichier en dehors de ce répertoire, ni à d'autres données "
|
||||
"personnelles. Aucune donnée ne sera partagé avec aucun tier."
|
||||
|
||||
#, fuzzy, javascript-format
|
||||
#, javascript-format
|
||||
msgid "Unknown log level: %s"
|
||||
msgstr "Paramètre inconnu : %s"
|
||||
|
||||
#, fuzzy, javascript-format
|
||||
#, javascript-format
|
||||
msgid "Unknown level ID: %s"
|
||||
msgstr "Paramètre inconnu : %s"
|
||||
|
||||
@ -631,9 +583,9 @@ msgstr "Objets supprimés localement : %d."
|
||||
msgid "Deleted remote items: %d."
|
||||
msgstr "Objets distants supprimés : %d."
|
||||
|
||||
#, fuzzy, javascript-format
|
||||
#, javascript-format
|
||||
msgid "State: \"%s\"."
|
||||
msgstr "Etat : %s."
|
||||
msgstr "Etat : \"%s\"."
|
||||
|
||||
msgid "Cancelling..."
|
||||
msgstr "Annulation..."
|
||||
@ -665,7 +617,7 @@ msgstr "Cette note n'a pas d'information d'emplacement."
|
||||
|
||||
#, javascript-format
|
||||
msgid "Cannot copy note to \"%s\" notebook"
|
||||
msgstr "Impossible de copier la note dans le carnet \"%s\""
|
||||
msgstr "Impossible de copier la note vers le carnet \"%s\""
|
||||
|
||||
#, javascript-format
|
||||
msgid "Cannot move note to \"%s\" notebook"
|
||||
@ -675,14 +627,15 @@ msgstr "Impossible de déplacer la note vers le carnet \"%s\""
|
||||
msgid "Invalid option value: \"%s\". Possible values are: %s."
|
||||
msgstr "Option invalide: \"%s\". Les valeurs possibles sont : %s."
|
||||
|
||||
#, fuzzy
|
||||
msgid "File system synchronisation target directory"
|
||||
msgstr "Cible de la synchronisation"
|
||||
msgstr "Cible de la synchronisation sur le disque dur"
|
||||
|
||||
msgid ""
|
||||
"The path to synchronise with when file system synchronisation is enabled. "
|
||||
"See `sync.target`."
|
||||
msgstr ""
|
||||
"Le chemin du répertoire avec lequel synchroniser lorsque la synchronisation "
|
||||
"par système de fichier est activée. Voir `sync.target`."
|
||||
|
||||
msgid "Synchronisation target"
|
||||
msgstr "Cible de la synchronisation"
|
||||
@ -691,6 +644,8 @@ msgid ""
|
||||
"The target to synchonise to. If synchronising with the file system, set "
|
||||
"`sync.2.path` to specify the target directory."
|
||||
msgstr ""
|
||||
"La cible avec laquelle synchroniser. Pour synchroniser avec le système de "
|
||||
"fichier, veuillez spécifier le répertoire avec `sync.2.path`."
|
||||
|
||||
msgid "File system"
|
||||
msgstr "Système de fichier"
|
||||
@ -699,12 +654,14 @@ msgid "OneDrive"
|
||||
msgstr "OneDrive"
|
||||
|
||||
msgid "Text editor"
|
||||
msgstr ""
|
||||
msgstr "Editeur de texte"
|
||||
|
||||
msgid ""
|
||||
"The editor that will be used to open a note. If none is provided it will try "
|
||||
"to auto-detect the default editor."
|
||||
msgstr ""
|
||||
"L'éditeur de texte pour ouvrir et modifier les notes. Si aucun n'est "
|
||||
"spécifié, il sera détecté automatiquement."
|
||||
|
||||
msgid "Language"
|
||||
msgstr "Langue"
|
||||
@ -713,9 +670,8 @@ msgid "Show uncompleted todos on top of the lists"
|
||||
msgstr "Tâches non-terminées en haut des listes"
|
||||
|
||||
msgid "Show advanced options"
|
||||
msgstr ""
|
||||
msgstr "Montrer les options avancées"
|
||||
|
||||
#, fuzzy
|
||||
msgid "Save geo-location with notes"
|
||||
msgstr "Enregistrer l'emplacement avec les notes"
|
||||
|
||||
@ -723,7 +679,7 @@ msgid "Synchronisation interval"
|
||||
msgstr "Interval de synchronisation"
|
||||
|
||||
msgid "Disabled"
|
||||
msgstr ""
|
||||
msgstr "Désactivé"
|
||||
|
||||
#, javascript-format
|
||||
msgid "%d minutes"
|
||||
@ -772,7 +728,6 @@ msgstr "Carnets"
|
||||
msgid "%s: %d notes"
|
||||
msgstr "%s : %d notes"
|
||||
|
||||
#, fuzzy
|
||||
msgid "New to-do"
|
||||
msgstr "Nouvelle tâche"
|
||||
|
||||
@ -812,19 +767,17 @@ msgstr "Editer le carnet"
|
||||
msgid "Refresh"
|
||||
msgstr "Rafraîchir"
|
||||
|
||||
#, fuzzy
|
||||
msgid "This note has been modified:"
|
||||
msgstr "Aucun carnet n'est spécifié."
|
||||
msgstr "Cette note a été modifiée :"
|
||||
|
||||
msgid "Save changes"
|
||||
msgstr ""
|
||||
msgstr "Enregistrer les changements"
|
||||
|
||||
msgid "Discard changes"
|
||||
msgstr ""
|
||||
msgstr "Ignorer les changements"
|
||||
|
||||
#, fuzzy
|
||||
msgid "Cancel"
|
||||
msgstr "Annulation..."
|
||||
msgstr "Annulation"
|
||||
|
||||
msgid "Attach file"
|
||||
msgstr "Attacher un fichier"
|
||||
|
@ -121,43 +121,6 @@ msgstr ""
|
||||
msgid "The command \"%s\" is only available in GUI mode"
|
||||
msgstr ""
|
||||
|
||||
msgid "Only Bash is currently supported for autocompletion."
|
||||
msgstr ""
|
||||
|
||||
msgid ""
|
||||
"Autocompletion can be made to work with an alias too (such as a one-letter "
|
||||
"command like \"j\").\n"
|
||||
"If you would like to enable this, please type the alias now (leave it empty "
|
||||
"for no alias):"
|
||||
msgstr ""
|
||||
|
||||
#, javascript-format
|
||||
msgid "Created autocompletion script \"%s\"."
|
||||
msgstr ""
|
||||
|
||||
#, javascript-format
|
||||
msgid "Autocompletion script is already present in \"%s\"."
|
||||
msgstr ""
|
||||
|
||||
#, javascript-format
|
||||
msgid "Added autocompletion to \"%s\"."
|
||||
msgstr ""
|
||||
|
||||
#, javascript-format
|
||||
msgid "Alias is already set in \"%s\"."
|
||||
msgstr ""
|
||||
|
||||
#, javascript-format
|
||||
msgid "Added alias to \"%s\"."
|
||||
msgstr ""
|
||||
|
||||
#, javascript-format
|
||||
msgid ""
|
||||
"IMPORTANT: run the following command to initialise autocompletion in the "
|
||||
"current shell:\n"
|
||||
"source '%s'"
|
||||
msgstr ""
|
||||
|
||||
#, javascript-format
|
||||
msgid "Missing required argument: %s"
|
||||
msgstr ""
|
||||
@ -271,7 +234,7 @@ msgid ""
|
||||
"note or notebook. `$c` can be used to refer to the currently selected item."
|
||||
msgstr ""
|
||||
|
||||
msgid "To move from one widget to another, press Tab or Shift+Tab."
|
||||
msgid "To move from one pane to another, press Tab or Shift+Tab."
|
||||
msgstr ""
|
||||
|
||||
msgid ""
|
||||
@ -279,7 +242,7 @@ msgid ""
|
||||
"(including this console)."
|
||||
msgstr ""
|
||||
|
||||
msgid "To maximise/minimise the console, press \"C\"."
|
||||
msgid "To maximise/minimise the console, press \"TC\"."
|
||||
msgstr ""
|
||||
|
||||
msgid "To enter command line mode, press \":\""
|
||||
|
@ -90,8 +90,8 @@ android {
|
||||
applicationId "net.cozic.joplin"
|
||||
minSdkVersion 16
|
||||
targetSdkVersion 22
|
||||
versionCode 52
|
||||
versionName "0.9.39"
|
||||
versionCode 53
|
||||
versionName "0.9.40"
|
||||
ndk {
|
||||
abiFilters "armeabi-v7a", "x86"
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user