# Working in other languages

If you work in a language other than English, you can extend plume classes with default names in your desired language. plume provides `set_default_names()` to help you set new default names.

For example, to extend `Plume` with default names in French:

    PlumeFr <- R6::R6Class(
      classname = "PlumeFr",
      inherit = Plume,
      private = list(
        names = set_default_names(
          initials = "initiales",
          literal_name = "nom_complet",
          corresponding = "correspondant",
          given_name = "prénom",
          family_name = "nom",
          email = "courriel",
          phone = "téléphone"
        )
      )
    )

    PlumeFr$new(encyclopedists_fr)
    #> # A tibble: 4 × 11
    #>      id prénom  nom   nom_complet initiales orcid courriel téléphone role  note
    #>   <int> <chr>   <chr> <chr>       <chr>     <chr> <chr>    <chr>     <chr> <chr>
    #> 1     1 Denis   Dide… Denis Dide… D.D.      0000… diderot… +1234     Supe… né e…
    #> 2     2 Jean-J… Rous… Jean-Jacqu… J.-J.R.   0000… roussea… <NA>      <NA>  <NA>
    #> 3     3 Franço… Arou… François-M… F.-M.A.   <NA>  arouet@… <NA>      <NA>  dit …
    #> 4     4 Jean    Le R… Jean Le Ro… J.L.R.d'… 0000… alember… <NA>      Supe… né e…
    #> # ℹ 1 more variable: affiliation <list>

You can also override the default arguments of some methods to match your language. Expanding on the example above, we can add a new `get_contributions()` method to replace the default arguments of the `divider` and `sep_last` parameters:

    PlumeFr <- R6::R6Class(
      classname = "PlumeFr",
      inherit = Plume,
      private = list(
        names = set_default_names(
          initials = "initiales",
          literal_name = "nom_complet",
          corresponding = "correspondant",
          given_name = "prénom",
          family_name = "nom",
          email = "courriel",
          phone = "téléphone"
        )
      ),
      public = list(
        get_contributions = function(
          roles_first = TRUE,
          by_author = FALSE,
          alphabetical_order = FALSE,
          literal_names = FALSE,
          divider = " : ",
          sep = ", ",
          sep_last = " et "
        ) {
          super$get_contributions(
            roles_first = roles_first,
            by_author = by_author,
            alphabetical_order = alphabetical_order,
            literal_names = literal_names,
            divider = divider,
            sep = sep,
            sep_last = sep_last
          )
        }
      )
    )

    aut <- PlumeFr$new(
      encyclopedists_fr,
      roles = c(supervision = "Supervision", rédaction = "Rédaction")
    )
    aut$get_contributions()
    #> Supervision : D.D. et J.L.R.d'A.
    #> Rédaction : D.D., J.-J.R., F.-M.A. et J.L.R.d'A.