Skip to content

Conversation

Palcimer
Copy link
Contributor

@Palcimer Palcimer commented Aug 30, 2025

Summary

Migrate from LanguageTag to Intl.Locale for representing language tags

Related Issue

Reference the related issue(s) by number, e.g.:

Changes

  • Replaced LanguageTag with Intl.Locale in the LanguageString class.
  • Updated corresponding ScalarType (fedify:langTag)
  • Updated tests
  • Removed dependency for @phensley/language-tag

Benefits

  • Enhanced performance and compatibility through the use of native Intl.Locale API instead of a third-party package.

Checklist

  • Did you add a changelog entry to the CHANGES.md?
  • Did you write some relevant docs about this change (if it's a new feature)?
  • Did you write a regression test to reproduce the bug (if it's a bug fix)?
  • Did you write some tests for this change (if it's a new feature)?
  • Did you run deno task test-all on your machine?

Additional Notes

  • Renamed the property that holds the language tag from language to locale to eliminate the awkward repetition in the expression this.language.language, and I wonder if the renaming was appropriate.
  • Updating CHANGES.md

Copy link
Contributor

@gemini-code-assist gemini-code-assist bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Summary of Changes

Hello @Palcimer, I'm Gemini Code Assist1! I'm currently reviewing this pull request and will post my feedback shortly. In the meantime, here's a summary to help you and other reviewers quickly get up to speed!

This pull request refactors the handling of language tags by replacing a third-party library with JavaScript's built-in Intl.Locale API. This change aims to leverage native browser capabilities for improved performance and better integration, while also reducing external dependencies. The core functionality of representing and processing language-tagged strings remains consistent, but the underlying implementation is now more efficient and standardized.

Highlights

  • Core Migration: Migrated the internal representation of language tags from the third-party @phensley/language-tag library to the native Intl.Locale API, enhancing performance and compatibility.
  • Dependency Removal: Eliminated the @phensley/language-tag dependency from the project, simplifying the dependency tree and reducing bundle size.
  • API Renaming: Renamed the language property to locale within the LanguageString class to improve clarity and avoid awkward repetition in property access.
  • ScalarType Update: Updated the fedify:langTag ScalarType to correctly handle and encode/decode Intl.Locale objects.
  • Test Adjustments: Modified existing tests and snapshots to align with the new Intl.Locale usage and property changes.
Using Gemini Code Assist

The full guide for Gemini Code Assist can be found on our documentation page, here are some quick tips.

Invoking Gemini

You can request assistance from Gemini at any point in your pull request via creating an issue comment (i.e. comment on the pull request page) using either /gemini <command> or @gemini-code-assist <command>. Below is a summary of the supported commands.

Feature Command Description
Code Review /gemini review Performs a code review for the current pull request in its current state.
Pull Request Summary /gemini summary Provides a summary of the current pull request in its current state.
Comment @gemini-code-assist Responds in comments when explicitly tagged, both in issue comments and review comments.
Help /gemini help Displays a list of available commands.

Customization

To customize Gemini Code Assist for GitHub experience, repository maintainers can create a configuration file and/or provide a custom code review style guide (such as PEP-8 for Python) by creating and adding files to a .gemini/ folder in the base of the repository. Detailed instructions can be found here.

Limitations & Feedback

Gemini Code Assist may make mistakes. Please leave feedback on any instances where its feedback is incorrect or counter productive. You can react with 👍 and 👎 on @gemini-code-assist comments. If you're interested in giving your feedback about your experience with Gemini Code Assist for Github and other Google products, sign up here.

You can also get AI-powered code generation, chat, as well as code reviews directly in the IDE at no cost with the Gemini Code Assist IDE Extension.

Footnotes

  1. Review the Privacy Notices, Generative AI Prohibited Use Policy, Terms of Service, and learn how to configure Gemini Code Assist in GitHub here. Gemini can make mistakes, so double check it and use code with caution.

@github-actions github-actions bot added breaking change Breaking change component/vocab Activity Vocabulary related priority/medium Medium priority issues type/documentation Improvements or additions to documentation type/enhancement Improvements to existing features type/refactor Code refactoring labels Aug 30, 2025
Copy link
Contributor

@gemini-code-assist gemini-code-assist bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Code Review

This pull request successfully migrates from the third-party @phensley/language-tag library to the native Intl.Locale API for handling language tags. This is a positive change that improves performance and reduces dependencies. The implementation is solid, with updates to the core logic, tests, and documentation. I've identified a couple of minor areas for improvement in the documentation and code consistency, but overall, this is a great contribution.

Copy link
Member

@dahlia dahlia left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Looks good to me. Thanks!

@dahlia dahlia merged commit a72bdc7 into fedify-dev:next Aug 31, 2025
8 of 9 checks passed
@dahlia dahlia linked an issue Aug 31, 2025 that may be closed by this pull request
7 tasks
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
breaking change Breaking change component/vocab Activity Vocabulary related priority/medium Medium priority issues type/documentation Improvements or additions to documentation type/enhancement Improvements to existing features type/refactor Code refactoring
Projects
None yet
Development

Successfully merging this pull request may close these issues.

Migrate from @phensley/language-tag to Intl.Locale for Fedify 2.0
2 participants