Skip to content

Commit

Permalink
Merge pull request #22 from r-devel/mac-gui-translation
Browse files Browse the repository at this point in the history
add Mac GUI translation project
  • Loading branch information
hturner authored Aug 21, 2023
2 parents 4f1f482 + 5b8c175 commit 41db4c1
Showing 1 changed file with 87 additions and 0 deletions.
87 changes: 87 additions & 0 deletions projects/mac-gui-translation/index.Rmd
Original file line number Diff line number Diff line change
@@ -0,0 +1,87 @@
---
title: Facilitate Translation for Mac GUI # Warning: changing the title may create a new Discussions thread!
description: "" # Optional short description for post on Discussions
author: Simon Urbanek and Michael Chirico # and co-authors if applicable
output: html_document
categories: [Translation] # use labels from https://github.com/r-devel/r-project-sprint-2023/labels
comments:
giscus:
repo: "r-devel/r-project-sprint-2023"
repo-id: "R_kgDOIhAibA"
category: "Proposals"
category-id: "DIC_kwDOIhAibM4CW3GY"
mapping: "title"
reactions-enabled: true
loading: lazy
---

```{=html}
<!--
This template is based on https://contributor.r-project.org/r-project-sprint-2023/projects/quartz-alpha-mask/.
The sections are provided as a guide and may not be appropriate to your proposal, feel free to skip or change sections.
Please label any R code chunks, especially those producing images.
-->
```
```{r setup}
```

## Background

The R for Mac GUI is the most comprehensive platform-specific R GUI and has been pioneering a lot of features now present in other GUIs and commercial products. Although officially supported by R Core, the Mac GUI is maintained on the [Mac GUI](https://github.com/R-macos/Mac-GUI) GitHub repository rather than the R Project Subversion repository.

One aspect of the Mac GUI that has room for improvement is the translation of GUI text into languages other than English.

## Problem statement

The number of languages currently supported is rather limited (German, Italian, French, Japanese, Dutch) and existing translations may be outdated.

In addition, contributing translations is not straight-forward. The preferred workflow requires use of Xcode on macOS. An alternative is to collaborate with a maintainer who will send the strings text files to be translated. However, this workflow places extra burden on the maintainers and it is difficult for contributors to identify which strings need updating. Both workflows require contributors to take special care to use UTF-8 encoding to avoid corrupting translation files.

## Proposed solution

This project will add the Mac GUI strings as a component on the [Weblate server for R](https://translate.rx.studio/projects/r-project/). This would mean that the technical details are taken care of and contributors can focus on translating the text, only requiring access to a browser to contribute.

The proposed work plan is as follows:

1. Set up Weblate to work with the strings files from the Mac GUI (collaborating with those working on [Weblate Improvements](https://contributor.r-project.org/r-project-sprint-2023/projects/weblate-improvements/)), see the [Weblate docs](https://docs.weblate.org/en/latest/formats/apple.html#apple).
2. Test the workflow of updating a translation with speakers of currently translated languages at the sprint, e.g. German, French or Japanese.
3. Add new Left-to-Right languages. Potential additions represented at the sprint: Spanish, Brazilian Portuguese, Nepali.
4. Add support for Right-to-Left languages, see the [Apple docs](https://developer.apple.com/library/archive/documentation/MacOSX/Conceptual/BPInternational/SupportingRight-To-LeftLanguages/SupportingRight-To-LeftLanguages.html#//apple_ref/doc/uid/10000171i-CH17-SW1).
5. Begin to add Arabic translations.

Tasks 2 and 3 depend on a minimal viable product from task 1 (e.g. an initial set up may rely on some manual steps that could be scripted/automated later). Translators could contribute to other projects until this is ready.

Task 4 can be worked on independently of tasks 1 to 3, but task 5 is dependent on both task 1 and 4. Arabic translators may wish to work on [translations for the Windows GUI](https://translate.rx.studio/projects/r-project/base-r-gui/ar/) in the meantime, which can already be done through Weblate.

## Project requirements

<!-- Include here prerequisite knowledge and any operating system requirements -->

Fluent speakers of languages other than English are required for the translation tasks (2, 3 and 5).

The Weblate set-up will need to be done by a Weblate admin (currently only Gergely Daróczi), but might be supported by a contributor with advanced knowledge of git.

Support for Right-to-Left languages requires modifying Objective C code with Xcode on macOS. This will likely be done by Simon Urbanek, but might be supported by a macOS user wanting to learn more about development of the Mac GUI.

## Project resources

- [Mac GUI GitHub repository](https://github.com/R-macos/Mac-GUI/)

- [Weblate documentation on Apple strings](https://docs.weblate.org/en/latest/formats/apple.html#apple)

- [Apple developer documentation on RTL language support](https://developer.apple.com/library/archive/documentation/MacOSX/Conceptual/BPInternational/SupportingRight-To-LeftLanguages/SupportingRight-To-LeftLanguages.html#//apple_ref/doc/uid/10000171i-CH17-SW1)

## Project outcomes

Contributions to the next release of the Mac GUI.

## Reactions and comments

```{=html}
<!--
Please leave the Reactions and comments section
- a Giscus comment box will be automatically added here
-->
```

0 comments on commit 41db4c1

Please sign in to comment.