Uploaded image for project: 'Jenkins'
  1. Jenkins
  2. JENKINS-41729

Using utf-8 letters in property files

    XMLWordPrintable

    Details

    • Type: Improvement
    • Status: In Review (View Workflow)
    • Priority: Minor
    • Resolution: Unresolved
    • Component/s: core
    • Labels:
      None
    • Similar Issues:

      Description

      Property files for localization requires to be encoded in ISO-8859-1.
      It results difficulties in reviewing localizing pull requires such as https://github.com/jenkinsci/maven-plugin/pull/86.
      It would be nice if property files in source directories can be written in UTF-8 letters.

      There are two approaches:

      1. Encode property files when compiling.
        • maven-resources-plugin copies files in the resources directory into the target directory. It doesn't provide a feature to encode property files.
        • Though native2ascii-maven-plugin encodes property files, it is provided only as beta for long time.
          • This might mean encoding property files in compilation time isn't a standard approach.
        • maven-antrun-plugin can run native2ascii (But it feels strange approach to me).
        • This approach would cause problems when testing plugins with "mvn hpi:run".
          • As property files aren't compiled and read from source directories directly at that time.
      2. Make libraries reading property files accept UTF-8 letters.

      Actually, I'm not sure this is a good idea.
      I created this ticket and will create pull requests to request comments about this idea.

        Attachments

          Activity

          Show
          ikedam ikedam added a comment - https://github.com/kohsuke/localizer/pull/13
          Hide
          ikedam ikedam added a comment - - edited
          Show
          ikedam ikedam added a comment - - edited https://github.com/stapler/stapler/pull/105
          Hide
          ikedam ikedam added a comment -

          The apparent problem is assuming that encoding is always UTF-8.

          Show
          ikedam ikedam added a comment - The apparent problem is assuming that encoding is always UTF-8.
          Hide
          ikedam ikedam added a comment -

          I found existing property files are not encoded in ASCII, but ISO-8859-1.
          See more details in https://github.com/stapler/stapler/pull/105.
          ISO-8859-1 and UTF-8 are not compatible, and it looks difficult to detect decoding errors in Java.

          It would be better to consider using XML property files: https://docs.oracle.com/javase/8/docs/api/java/util/Properties.html#loadFromXML-java.io.InputStream-

          Show
          ikedam ikedam added a comment - I found existing property files are not encoded in ASCII, but ISO-8859-1. See more details in https://github.com/stapler/stapler/pull/105 . ISO-8859-1 and UTF-8 are not compatible, and it looks difficult to detect decoding errors in Java. It would be better to consider using XML property files: https://docs.oracle.com/javase/8/docs/api/java/util/Properties.html#loadFromXML-java.io.InputStream-
          Show
          ikedam ikedam added a comment - https://github.com/stapler/stapler/pull/171
          Show
          ikedam ikedam added a comment - https://github.com/kohsuke/localizer/pull/20
          Hide
          jglick Jesse Glick added a comment -

          Probably requires a dev list discussion as to whether we want to be hosting non-English translations in feature repositories (as opposed to translation repositories), and in either case whether XML is the best format.

          Show
          jglick Jesse Glick added a comment - Probably requires a dev list discussion as to whether we want to be hosting non-English translations in feature repositories (as opposed to translation repositories), and in either case whether XML is the best format.
          Hide
          oleg_nenashev Oleg Nenashev added a comment -

          IIUC we can close it now with the Jenkins core release. Or not?

          Show
          oleg_nenashev Oleg Nenashev added a comment - IIUC we can close it now with the Jenkins core release. Or not?
          Hide
          jglick Jesse Glick added a comment -

          Is this actually available now in core? Would like to see at least some, if not all, *.properties converted accordingly.

          Show
          jglick Jesse Glick added a comment - Is this actually available now in core? Would like to see at least some, if not all, *.properties converted accordingly.
          Hide
          jglick Jesse Glick added a comment -

          https://github.com/stapler/stapler/pull/171 remains open, so no this should not be closed now.

          Show
          jglick Jesse Glick added a comment - https://github.com/stapler/stapler/pull/171 remains open, so no this should not be closed now.

            People

            Assignee:
            ikedam ikedam
            Reporter:
            ikedam ikedam
            Votes:
            0 Vote for this issue
            Watchers:
            3 Start watching this issue

              Dates

              Created:
              Updated: