Necessary to pin to specific version because the `latest` version is constantly updated with each new release of Ruby.
In the future, when updating Ruby, you'll have to update both this file and the `.ruby-version` file so the versions match in order for the builds to succeed.
Milestone: minor
Ensures additional packages are avoided unless specified. This also ensures Ruby is up-to-date while removing the explicit install of Bundler since Bundler is already available.
Milestone: patch
Necessary to prepare for Ruby 3.5.0 (or 4.0.0 depending on what Matz says) that drops on Christmas Day. This'll allow us to run on the new version so we can upgrade further if desired.
Milestone: patch
We are removing the linter in order to make community contributions easier at the cost of degrading Git commit history and release note generation. The majority of this gem houses translations with very little code (this is on purpose) that happens to be wrapped as a gem.
This is a partial revert of 90ba60b68f (Added project skeleton) when first setting up the project.
Milestone: minor
We already use pathnames for all of our paths so good to keep this code consistent in terms of readability but also encourage others to embrace the Pathname API since it's far more powerful than the standard File API.
Milestone: patch
Necessary to recurse through a YAML structure and collapse hashes and arrays into a single key/value pair with each new value representing the flattened structure. For hashes, this means `one.two.three` as a value. For arrays, this means an indexed value: `parent.path[0].key_1`.
Co-authored-by: Rockwell Schrock <rockwell@schrock.me>
Milestone: minor
The original isn't used in natural conversation. With this translation, we are able to provide a formal (or informal based on context) natural form of expression.
Issue: 69
Milestone: patch
We're switching to Circle CI in order to provide a more debuggable environment using standard Docker images. This will also make building forked pull requests more reliable. We're using link:https://alchemists.io/projects/docker-alpine-ruby[Docker Alpine Ruby] which provides a small footprint and is always updated to the latest version of Ruby.
Milestone: minor
Necessary for Git Lint to lint commit messages properly since GitHub Actions doesn't provide this by default. Git Lint needs to this determine which commits are on the feature branch.
This includes setting the default branch to `master` since Git Lint assumes `main` by default.
Necessary to show how to use this gem for development purposes when adding new locales and wanting a quick way to ensure they are loaded properly in a Rails application. This includes fixing the bullet points for the credits section.
This was a mistake on my part. I couldn't see `raw.yml` via the `I18n.load_path` when first converting this project to a gem but am now able to confirm that it loads properly so there is no reason to use `en.raw.yml` anymore. This also adheres to what is documented in the guide.
Necessary to ensure we have parity with English (default) translations by looping through all files, flattening the keys, and checking for any differences. Zero differences is good because that means we have identical keys. A separate spec is supplied for category of locale despite some duplication in setup which seems acceptable for now.
In order to check key parity, the locale of each file loaded is always ignored in order to ensure equal comparisons.
Necessary to prevent keys like `yes` or `no`, for example, from resolving to `true` or `false` accordingly. To prevent this behavior, the key is wrapped as a string. Caught this during testing where I discovered none of these translations were loading properly.
Opted to manually fold in these changes since I changed the directory structure of folks. This way we can close out the open code review on the work Julien provided.
Co-authored-by: Julien Gong <julien.gong@gmail.com>
Necessary to hook locales into Rails automatically. We need a custom implementation because Rails, by default, won't load nested locales but only locales in the root of any directory so this implementation makes that possible.
Generated with link:https://alchemists.io/projects/gemsmith[Gemsmith] 23.1.0. The command used was:
[source,bash]
----
gemsmith build --name trmnl-i18n \
--git_hub_ci \
--no-circle_ci \
--no-citation \
--no-community \
--no-conduct \
--no-contributions \
--no-dcoo \
--no-funding \
--no-license \
--no-refinements \
--no-versions \
--no-zeitwerk
----
The `*.gemspec` file was update to include the Railtie gem dependency since this is needed for automatic registration within a Rails application.