From 68d5783e5406a83276843337aa29f3021f46fb03 Mon Sep 17 00:00:00 2001 From: cregouby Date: Tue, 17 Sep 2024 16:15:58 +0200 Subject: [PATCH] Add french translation to messages (#148) * fix msg typos * finish fr translation * update News, fix plural * improve news * fix typo --- NEWS.md | 5 +- R/serialization.R | 2 +- R/utils.R | 2 +- inst/po/fr/LC_MESSAGES/R-luz.mo | Bin 0 -> 8834 bytes po/R-fr.po | 325 ++++++++++++++++++++++++++++++++ po/R-luz.pot | 287 ++++++++++++++++++++++++++++ 6 files changed, 617 insertions(+), 4 deletions(-) create mode 100644 inst/po/fr/LC_MESSAGES/R-luz.mo create mode 100644 po/R-fr.po create mode 100644 po/R-luz.pot diff --git a/NEWS.md b/NEWS.md index b6e9b40f..0bb41b3f 100644 --- a/NEWS.md +++ b/NEWS.md @@ -4,6 +4,7 @@ * Added support for torch iterable datasets. (#135) * Fixed a bug when trying to resume models trained with learning rate schedulers. (#137) * Added support for learning rate schedulers that take the current loss as arguments. (#140) +* Added French translation of luz messages. (@cregouby #148) # luz 0.4.0 @@ -17,8 +18,8 @@ * Added support for arm Mac's and the MPS device. (#104) * Refactor checkpointing in luz - we now also serialize optimizer state and callbacks state. (#107) -* Added a `luz_callback_autoresume()` allowing to easily resume trainining runs that might have crashed. (#107) -* Added th `luz_callback_resume_from_checkpoint()` allowing one to resume a training run from a checkpoint file. (#107) +* Added a `luz_callback_autoresume()` allowing to easily resume training runs that might have crashed. (#107) +* Added the `luz_callback_resume_from_checkpoint()` allowing one to resume a training run from a checkpoint file. (#107) * Users can now chose if metrics should be called on both training and validation, only training or only validation. See `luz_metric_set()` for more information. (#112) * Improved how errors raised on user code, eg while calling metrics or callbacks diff --git a/R/serialization.R b/R/serialization.R index 9135d4cc..b97c5c34 100644 --- a/R/serialization.R +++ b/R/serialization.R @@ -191,7 +191,7 @@ luz_load_checkpoint.luz_fit_context <- function(obj, path, ..., cli::cli_abort(c( x = "Failed resuming the model.", i = paste0( - "A callback with class {.cls {class(cb)} has state attached ", + "A callback with class {.cls {class(cb)} has been attached ", "to it, but doesn't implement the {.fn load_state_dict} method." ) )) diff --git a/R/utils.R b/R/utils.R index 2ae2561b..7062eb44 100644 --- a/R/utils.R +++ b/R/utils.R @@ -42,7 +42,7 @@ get_method <- function(x, method) { get_forward <- function(x) { forward <- get_method(x, "forward") if (is.null(forward)) { - cli::cli_abort("No method {.val forward} method found.") + cli::cli_abort("No {.val forward} method found.") } forward } diff --git a/inst/po/fr/LC_MESSAGES/R-luz.mo b/inst/po/fr/LC_MESSAGES/R-luz.mo new file mode 100644 index 0000000000000000000000000000000000000000..0c225b149624833e82f7beab4d3281880db0b7eb GIT binary patch literal 8834 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 literal 0 HcmV?d00001 diff --git a/po/R-fr.po b/po/R-fr.po new file mode 100644 index 00000000..6a7213e3 --- /dev/null +++ b/po/R-fr.po @@ -0,0 +1,325 @@ +msgid "" +msgstr "" +"Project-Id-Version: luz 0.4.0.9002\n" +"POT-Creation-Date: 2024-08-14 19:43+0200\n" +"PO-Revision-Date: 2024-08-14 19:44+0200\n" +"Last-Translator: \n" +"Language-Team: \n" +"Language: fr\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Generator: Poedit 3.4.3\n" + +#: accelerator.R:33 +msgid "Wrong number of parameters in the prepared model." +msgstr "Nombre incorrect de paramètres dans le modèle après préparation." + +#: accelerator.R:34 +msgid "Please report an issue in the GitHub repository." +msgstr "Merci d'ouvrir une issue dans le dépot Github." + +#: accelerator.R:58 +msgid "Unhandled object with class {class(obj)}" +msgstr "Les objets de classe {class(obj)} ne sont pas traités." + +#: accelerator.R:59 +msgid "Only nn_modules, optimizers and dataloaders are supported." +msgstr "" +"Seuls les `nn_modules`, les optimiseurs et les `dataloaders` sont pris en " +"charge." + +#: as_dataloader.R:42 +msgid "Unsupported object with class '" +msgstr "Les objets de classe `" + +#: as_dataloader.R:44 +msgid "'." +msgstr "` ne sont pas pris en charge." + +#: as_dataloader.R:45 module.R:522 module.R:526 +msgid "value_error" +msgstr "value_error" + +#: as_dataloader.R:99 +msgid "Can't convert object with class '%s' to a torch dataset." +msgstr "" +"Impossible de convertir les objets de classe '%s' en jeu de donnée `torch::" +"dataset`." + +#: callbacks-monitor-metrics.R:24 +msgid "Expected monitored metric to be length 1, got {length(out)}" +msgstr "" +"La métrique sous surveillance doit être de longueur 1. Elle est en fait de " +"{length(out)}." + +#: callbacks.R:42 +msgid "" +"Error while calling callback with class {.cls {class(callback)}} at {.field " +"{name}}." +msgstr "" +"Erreur pendant l'appel de `callback` de classe {.cls {class(callback)}} sur " +"{.field {name}}." + +#: callbacks.R:348 +msgid "" +"Error when evaluating {.field update} for metric with abbrev {.val {metric" +"$abbrev}} and class {.cls {class(metric)}}" +msgstr "" +"Erreur pendant l'évaluation de {.field update} pour la métrique abrégée {." +"val {metric$abbrev}} de classe {.cls {class(metric)}}." + +#: callbacks.R:349 callbacks.R:364 +msgid "" +"The error happened at iter {.val {ctx$iter}} of epoch {.val {ctx$epoch}}." +msgstr "" +"L'erreur a eu lieu à l'itération {.val {ctx$iter}} de l'époque {.val {ctx" +"$epoch}}." + +#: callbacks.R:350 callbacks.R:365 +msgid "" +"The model was {.emph {ifelse(ctx$training, '', 'not ')}}in training mode." +msgstr "" +"Le modèle {.emph {ifelse(ctx$training, 'était ', 'n'était pas ')}} en mode " +"apprentissage." + +#: callbacks.R:363 +msgid "" +"Error when evaluating {.field compute} for metric with abbrev {.val {metric" +"$abbrev}} and class {.cls {class(metric)}}" +msgstr "" +"Erreur pendant l'évaluation de {.field compute} pour la métrique abrégée {." +"val {metric$abbrev}} de classe {.cls {class(metric)}}." + +#: callbacks.R:452 +msgid "" +"An optimizer name was not supplied and your model has multiple optimizers" +msgstr "" +"Le nom d'un optimiseur n'a pas été fourni et votre modèle comporte plusieurs " +"optimiseurs" + +#: callbacks.R:455 +msgid "opt_name '{self$opt_name}' not found in ctx$optimizers." +msgstr "" +"l'optimiseur nommé '{self$opt_name}' n'existe pas dans `ctx$optimizers`." + +#: callbacks.R:532 +msgid "{.var max_norm} should be a numeric scalar value." +msgstr "{.var max_norm} doit être une valeur numérique." + +#: callbacks.R:533 callbacks.R:539 +msgid "x" +msgstr "x" + +#: callbacks.R:533 +msgid "Got {.cls {class(max_norm)}} with length {length(max_norm)}" +msgstr "Ici, {.cls {class(max_norm)}} est de longueur {length(max_norm)}." + +#: callbacks.R:538 +msgid "{.var norm_type} should be a numeric scalar value." +msgstr "{.var norm_type} doit être une valeur numérique." + +#: callbacks.R:539 +msgid "Got {.cls {class(norm_type)}} with length {length(norm_type)}" +msgstr "Ici, {.cls {class(norm_type)}} est de longueur {length(norm_type)}." + +#: context.R:183 +msgid "You are unsafe setting records and it's overriding current data." +msgstr "" +"Il est très risqué d'affecter des valeurs aux `records`. De plus, cela " +"écrase toutes les données existantes." + +#: context.R:192 +msgid "" +"Not allowed to modify records manually. Use ctx$log() or ctx$log_metric()" +msgstr "" +"Il n'est pas permis de modifier les journaux directement. Ils sont " +"modifiables via `ctx$log()` ou `ctx$log_metric()`." + +#: context.R:200 +msgid "Not allowed to modify the device manually. Modify the ctx$accelerator" +msgstr "" +"Il n'est pas permis de modifier le périphérique `device` directement. Il est " +"modifiable via `ctx$accelerator`." + +#: context.R:203 +msgid "Context doesn't have an accelerator attached." +msgstr "Le contexte n'a pas d'accélérateur associé." + +#: context.R:342 +msgid "{.var ctx$opt} not set." +msgstr "{.var ctx$opt} n'est pas configuré." + +#: context.R:356 +msgid "{.var ctx$opt_name} not set." +msgstr "{.var ctx$opt_name} n'est pas configuré." + +#: context.R:574 +msgid "Expected `min_epochs` to be a scalar integer, got {str(min)}." +msgstr "`min_epochs` doit être un entier, mais c'est {str(min)}." + +#: context.R:577 +msgid "Expected `max_epochs` to be a scalar integer, got {str(max)}." +msgstr "`max_epochs` doit être un entier, mais c'est {str(max)}." + +#: context.R:580 +msgid "`min_epochs` is higher than `max_epochs` and that's not allowed." +msgstr "`min_epochs` est supérieur à `max_epochs` et ce n'est pas autorisé." + +#: context.R:591 +msgid "List of optimizers is not named." +msgstr "Les optimiseurs doivent être définis dans une liste nommée." + +#: context.R:592 +msgid "When returning a list of optimizers, the list must be named." +msgstr "Lorsqu'une liste d'optimiseurs est renvoyée, elle doit être nommée." + +#: context.R:597 +msgid "" +"Expected a torch optimizer but got an object with class '{class(i)[1]}'." +msgstr "" +"Un optimiseur torch est attendu, mais ici c'est un objet de classe '{class(i)" +"[1]}'." + +#: losses.R:22 +msgid "Loss must be a `nn_module`." +msgstr "La fonction de coût doit être un `nn_module`." + +#: losses.R:25 +msgid "The `reduction` attribute must be supported by the `nn_module`." +msgstr "L'attribut `reduction` doit être supporté par le `nn_module`." + +#: metrics-auc.R:13 +msgid "num_thresholds must be > 1" +msgstr "`num_thresholds` doit être > 1." + +#: metrics-auc.R:32 +msgid "not implemented" +msgstr "non implémenté" + +#: metrics.R:74 +msgid "Expected an object with class {.cls luz_metric_generator}." +msgstr "La classe de l'objet doit être {.cls luz_metric_generator}." + +#: metrics.R:75 +msgid "Got an object with class {.cls {class(x)}}." +msgstr "Mais ici l'objet a une classe {.cls {class(x)}}." + +#: module.R:51 +msgid "No loss function has been provided." +msgstr "La fonction de coût est manquante." + +#: module.R:52 +msgid "Use the `loss` argument or," +msgstr "Vous devez fournir l'argument `loss`, ou" + +#: module.R:53 +msgid "Implement the `loss` method in the `nn_module` or," +msgstr "implémenter une méthode `loss` dans le `nn_module`, ou" + +#: module.R:54 +msgid "" +"Implement a custom `step` method that manually optimized the parameters." +msgstr "" +"implémenter une méthode `step` spécifique qui inclue l'optimisation des " +"paramètres." + +#: module.R:61 +msgid "No optimizer definition has been provided." +msgstr "La définition de l'optimiseur est manquante." + +#: module.R:62 +msgid "Use the optimizer argument or," +msgstr "Vous devez utiliser l'argument `optimizer`, ou" + +#: module.R:63 +msgid "Implement the `set_optimizers` method in the `nn_module`." +msgstr "implémenter la méthode `set_optimizers` dans le `nn_module`." + +#: module.R:68 +msgid "backward should be a function with a single argument" +msgstr "`backward` doit être une fonction à un seul argument." + +#: module.R:521 +msgid "valid_data must be a value between 0 and 1, got %f" +msgstr "`valid_data` doit être entre 0 et 1. Ici, c'est %f" + +#: module.R:525 +msgid "Can't create a validation set from the training dataloader." +msgstr "" +"Impossible de créer un jeu de données de validation à partir du dataloader " +"d'apprentissage." + +#: module.R:526 +msgid "Supply a torch dataset instead." +msgstr "Il faut fournir un jeu de donnée torch `dataset` à la place." + +#: module.R:542 +msgid "" +"`dataloader_options` won't be used because `data` is already a dataloader." +msgstr "" +"`dataloader_options` sera ignoré pour `data` puisqu'il s'agit déjà d'un " +"dataloader." + +#: module.R:545 +msgid "" +"`dataloader_options` will be ignored for `valid_data` since it's already a " +"dataloader" +msgstr "" +"`dataloader_options` sera ignoré pour `valid_data` puisqu'il s'agit déjà " +"d'un dataloader" + +#: module.R:571 +msgid "`shuffle=TRUE` will be ignored for predictions." +msgstr "`shuffle=TRUE` sera ignoré pour les prédictions." + +#: serialization.R:29 +msgid "" +"luz_save only works with 'luz_module_fitted_objects' and got {class(obj)[1]}" +msgstr "" +"`luz_save` ne prend en compte que les objets `luz_module_fitted_objects`. " +"Ici, c'est un {class(obj)[1]}." + +#: serialization.R:192 +msgid "Failed resuming the model." +msgstr "Échec de reprise sur le modèle." + +#: serialization.R:194 +msgid "A callback with class {.cls {class(cb)} has been attached" +msgstr "Un `callback` de classe {.cls {class(cb)} lui est attaché" + +#: serialization.R:195 +msgid "to it, but doesn't implement the {.fn load_state_dict} method." +msgstr "mais il lui manque la méthode {.fn load_state_dict}." + +#: utils.R:45 +msgid "No {.val forward} method found." +msgstr "La méthode {.val forward} est manquante." + +#: utils.R:128 +msgid "Should have an out class." +msgstr "Doit inclure une classe `out`." + +#: utils.R:156 +msgid "The" +msgstr "Le" + +#: utils.R:156 +msgid "package must be installed in order to use `" +msgstr "paquet doit être installé pour pouvoir utiliser `" + +#: utils.R:157 +msgid "`" +msgstr "`" + +#: utils.R:157 +msgid "Do you need to run `install.packages('" +msgstr "Vous pouvez essayer `install.packages('" + +#: utils.R:158 +msgid "')`?" +msgstr "')`" + +#: utils.R:162 +msgid "Objects must have the same length." +msgstr "Les objets doivent avoir la même taille." diff --git a/po/R-luz.pot b/po/R-luz.pot new file mode 100644 index 00000000..eb9bddc2 --- /dev/null +++ b/po/R-luz.pot @@ -0,0 +1,287 @@ +msgid "" +msgstr "" +"Project-Id-Version: luz 0.4.0.9002\n" +"POT-Creation-Date: 2024-08-14 19:43+0200\n" +"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" +"Last-Translator: FULL NAME \n" +"Language-Team: LANGUAGE \n" +"Language: \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" + +#: accelerator.R:33 +msgid "Wrong number of parameters in the prepared model." +msgstr "" + +#: accelerator.R:34 +msgid "Please report an issue in the GitHub repository." +msgstr "" + +#: accelerator.R:58 +msgid "Unhandled object with class {class(obj)}" +msgstr "" + +#: accelerator.R:59 +msgid "Only nn_modules, optimizers and dataloaders are supported." +msgstr "" + +#: as_dataloader.R:42 +msgid "Unsupported object with class '" +msgstr "" + +#: as_dataloader.R:44 +msgid "'." +msgstr "" + +#: as_dataloader.R:45 module.R:522 module.R:526 +msgid "value_error" +msgstr "" + +#: as_dataloader.R:99 +msgid "Can't convert object with class '%s' to a torch dataset." +msgstr "" + +#: callbacks-monitor-metrics.R:24 +msgid "Expected monitored metric to be length 1, got {length(out)}" +msgstr "" + +#: callbacks.R:42 +msgid "" +"Error while calling callback with class {.cls {class(callback)}} at {.field " +"{name}}." +msgstr "" + +#: callbacks.R:348 +msgid "" +"Error when evaluating {.field update} for metric with abbrev {.val " +"{metric$abbrev}} and class {.cls {class(metric)}}" +msgstr "" + +#: callbacks.R:349 callbacks.R:364 +msgid "" +"The error happened at iter {.val {ctx$iter}} of epoch {.val {ctx$epoch}}." +msgstr "" + +#: callbacks.R:350 callbacks.R:365 +msgid "" +"The model was {.emph {ifelse(ctx$training, '', 'not ')}}in training mode." +msgstr "" + +#: callbacks.R:363 +msgid "" +"Error when evaluating {.field compute} for metric with abbrev {.val " +"{metric$abbrev}} and class {.cls {class(metric)}}" +msgstr "" + +#: callbacks.R:452 +msgid "" +"An optimizer name was not supplied and your model has multiple optimizers" +msgstr "" + +#: callbacks.R:455 +msgid "opt_name '{self$opt_name}' not found in ctx$optimizers." +msgstr "" + +#: callbacks.R:532 +msgid "{.var max_norm} should be a numeric scalar value." +msgstr "" + +#: callbacks.R:533 callbacks.R:539 +msgid "x" +msgstr "" + +#: callbacks.R:533 +msgid "Got {.cls {class(max_norm)}} with length {length(max_norm)}" +msgstr "" + +#: callbacks.R:538 +msgid "{.var norm_type} should be a numeric scalar value." +msgstr "" + +#: callbacks.R:539 +msgid "Got {.cls {class(norm_type)}} with length {length(norm_type)}" +msgstr "" + +#: context.R:183 +msgid "You are unsafe setting records and it's overriding current data." +msgstr "" + +#: context.R:192 +msgid "" +"Not allowed to modify records manually. Use ctx$log() or ctx$log_metric()" +msgstr "" + +#: context.R:200 +msgid "Not allowed to modify the device manually. Modify the ctx$accelerator" +msgstr "" + +#: context.R:203 +msgid "Context doesn't have an accelerator attached." +msgstr "" + +#: context.R:342 +msgid "{.var ctx$opt} not set." +msgstr "" + +#: context.R:356 +msgid "{.var ctx$opt_name} not set." +msgstr "" + +#: context.R:574 +msgid "Expected `min_epochs` to be a scalar integer, got {str(min)}." +msgstr "" + +#: context.R:577 +msgid "Expected `max_epochs` to be a scalar integer, got {str(max)}." +msgstr "" + +#: context.R:580 +msgid "`min_epochs` is higher than `max_epochs` and that's not allowed." +msgstr "" + +#: context.R:591 +msgid "List of optimizers is not named." +msgstr "" + +#: context.R:592 +msgid "When returning a list of optimizers, the list must be named." +msgstr "" + +#: context.R:597 +msgid "" +"Expected a torch optimizer but got an object with class '{class(i)[1]}'." +msgstr "" + +#: losses.R:22 +msgid "Loss must be a `nn_module`." +msgstr "" + +#: losses.R:25 +msgid "The `reduction` attribute must be supported by the `nn_module`." +msgstr "" + +#: metrics-auc.R:13 +msgid "num_thresholds must be > 1" +msgstr "" + +#: metrics-auc.R:32 +msgid "not implemented" +msgstr "" + +#: metrics.R:74 +msgid "Expected an object with class {.cls luz_metric_generator}." +msgstr "" + +#: metrics.R:75 +msgid "Got an object with class {.cls {class(x)}}." +msgstr "" + +#: module.R:51 +msgid "No loss function has been provided." +msgstr "" + +#: module.R:52 +msgid "Use the `loss` argument or," +msgstr "" + +#: module.R:53 +msgid "Implement the `loss` method in the `nn_module` or," +msgstr "" + +#: module.R:54 +msgid "" +"Implement a custom `step` method that manually optimized the parameters." +msgstr "" + +#: module.R:61 +msgid "No optimizer definition has been provided." +msgstr "" + +#: module.R:62 +msgid "Use the optimizer argument or," +msgstr "" + +#: module.R:63 +msgid "Implement the `set_optimizers` method in the `nn_module`." +msgstr "" + +#: module.R:68 +msgid "backward should be a function with a single argument" +msgstr "" + +#: module.R:521 +msgid "valid_data must be a value between 0 and 1, got %f" +msgstr "" + +#: module.R:525 +msgid "Can't create a validation set from the training dataloader." +msgstr "" + +#: module.R:526 +msgid "Supply a torch dataset instead." +msgstr "" + +#: module.R:542 +msgid "" +"`dataloader_options` won't be used because `data` is already a dataloader." +msgstr "" + +#: module.R:545 +msgid "" +"`dataloader_options` will be ignored for `valid_data` since it's already a " +"dataloader" +msgstr "" + +#: module.R:571 +msgid "`shuffle=TRUE` will be ignored for predictions." +msgstr "" + +#: serialization.R:29 +msgid "" +"luz_save only works with 'luz_module_fitted_objects' and got {class(obj)[1]}" +msgstr "" + +#: serialization.R:192 +msgid "Failed resuming the model." +msgstr "" + +#: serialization.R:194 +msgid "A callback with class {.cls {class(cb)} has been attached" +msgstr "" + +#: serialization.R:195 +msgid "to it, but doesn't implement the {.fn load_state_dict} method." +msgstr "" + +#: utils.R:45 +msgid "No {.val forward} method found." +msgstr "" + +#: utils.R:128 +msgid "Should have an out class." +msgstr "" + +#: utils.R:156 +msgid "The" +msgstr "" + +#: utils.R:156 +msgid "package must be installed in order to use `" +msgstr "" + +#: utils.R:157 +msgid "`" +msgstr "" + +#: utils.R:157 +msgid "Do you need to run `install.packages('" +msgstr "" + +#: utils.R:158 +msgid "')`?" +msgstr "" + +#: utils.R:162 +msgid "Objects must have the same length." +msgstr ""