Jump to content

Grants:Programs/Wikimedia Community Fund/Rapid Fund/Enhancing jQuery.IME (Universal Language Selector) for Vietnamese (ID: 23837885)

From Meta, a Wikimedia project coordination wiki
statusFunded
Enhancing jQuery.IME (Universal Language Selector) for Vietnamese
request or grant IDG-RF-2603-22543
proposed start date2026-06-01
proposed end date2026-08-30
requested budget (local currency)131673750 VND
requested budget (USD)4999.61 USD
amount funded (USD)4997.31
amount funded (local currency)131673750 VND
grant typeIndividual
funding regionESEAP
decision fiscal year2025-26
applicantPlantaest
organization (if applicable)N/A
Review Final Report

Applicant details

[edit]
Main Wikimedia username. (required)

Plantaest

Organization

N/A

If you are a group or organization leader, board member, president, executive director, or staff member at any Wikimedia group, affiliate, or Wikimedia Foundation, you are required to self-identify and present all roles. (required)

N/A

Describe all relevant roles with the name of the group or organization and description of the role. (required)

Main proposal

[edit]
1. State the title of your proposal. This will also be the Meta-Wiki page title.

Enhancing jQuery.IME (Universal Language Selector) for Vietnamese

2. and 3. Proposed start and end dates for the proposal.

2026-06-01 - 2026-08-30

4. What is your tech project about, and how do you plan to build the product?

Include the following points in your answer:

  • Project goal and problem you solve
  • Product strategy or project roadmap
  • Technical approach (infrastructure, tech stack, key tools and services)
  • Integrations or dependencies (if any)

jQuery.IME is a library of input methods for more than 100 languages, and it serves as the foundation for a larger tool, the Universal Language Selector (ULS), which supports language-related customization and is deployed across all Wikimedia wikis for all users [1][2].

Although it was introduced more than a decade ago, jQuery.IME (and consequently ULS) still does not support Vietnamese input methods—a language that uses the Latin alphabet but features a large number of diacritics and unique characters. A task created on Phabricator (T65465) in 2014 addressed this issue, but it remains unresolved to this day [3].

There are two main reasons for this situation:

First, Vietnamese-language wikis, including Wikipedia, Wiktionary, Wikisource, and others, have long relied on a Vietnamese input tool called AVIM (Advanced Vietnamese Input Method) [4]. This has reduced the motivation to develop a Vietnamese input method for jQuery.IME (ULS). However, the original author of the project is no longer active, and the only current maintainer is Mxn, an interface administrator of the Vietnamese Wikipedia community. According to his own account, the original AVIM codebase is difficult to understand due to its complexity ("the core AVIM code is difficult to reason about and impossible to unit test"), and he can only provide limited bug fixes [3]. As a result, the AVIM project page includes a notice to users stating: "AVIM is no longer being upgraded or improved, so bugs may occur without being fixed" [4].

Second, the design mechanism of jQuery.IME input methods poses challenges for implementing Vietnamese input, as it may be "too simple" for a language with complex diacritics and character combinations. A GitHub user who previously explored this issue highlighted the complexity of building a Vietnamese input method; for example, under the Telex typing method, inputs such as "Ddarng", "DDarng", "Dadrng", "Dardng", "Darndg", "Darngd", "Ddanrg", "DDanrg", "Dadnrg", "Dandrg", and "Danrdg" all produce the same word: "Đảng" [5]. This is known as the "free typing mechanism," a distinctive feature of Vietnamese input methods that is rarely found in input systems for other languages. Mxn also mentioned this aspect in task T65465 on Phabricator [3].

In 2021, an incident occurred when AVIM conflicted with the new Vector interface (Vector 2022) that the Wikimedia Foundation planned to deploy on pilot wikis such as Vietnamese Wikipedia [6]. A subsequent community discussion nearly reached consensus on disabling AVIM and requesting WMF to add Vietnamese input methods to ULS [7]. However, the discussion dissolved after Mxn provided a fix for AVIM, leaving open the possibility of improving ULS for Vietnamese Wikipedia.

During that process, in a discussion on Phabricator (T286863), I experimented with implementing a Vietnamese input method for jQuery.IME. However, the implementation remained incomplete and contained multiple issues. Additionally, due to the time elapsed, I can no longer fully recall how to reconstruct parts of the algorithm, which poses challenges for knowledge transfer. Nevertheless, Mxn noted that the approach was promising ("[...] that looks promising indeed") and entrusted me with addressing the integration of Vietnamese input methods into ULS—an issue that the community has been unable to resolve since 2014 [8].

In 2026, I intend to restart this project to complete the integration of Vietnamese input methods into jQuery.IME (ULS) and enable the eventual deprecation of AVIM. Improving jQuery.IME (ULS) for Vietnamese Wikipedia is an important and necessary long-term effort to prevent issues such as the unexpected failures observed in 2021 and more recently in 2024 [9].

At present, the Vietnamese Wikipedia community has reached consensus supporting my implementation of this project: vi:Wikipedia:Thảo luận cộng đồng/Dự án Thay thế AVIM bằng ULS.

In terms of planning, the project is expected to be carried out over three months (13 weeks), divided into three phases:

Phase 1 (6 weeks): I will focus on designing an algorithm for Vietnamese input compatible with jQuery.IME, building on partial work from 2021. This algorithm is more complex than input methods for other languages in jQuery.IME and therefore requires significant time. A preliminary specification has been drafted here: vi:Thành viên:Plantaest/Thay thế AVIM bằng ULS#Đặc tả sơ bộ.

Phase 2 (3 weeks): Once the algorithm is finalized, I will implement Vietnamese input methods in plain JavaScript for integration into jQuery.IME. Notably, this project does not modify the core jQuery.IME codebase; it only adds Vietnamese input methods, resulting in a very low security risk.

Phase 3 (4 weeks): I will release a test version for community use and feedback, while also producing comprehensive documentation. During this phase, I will continue refining features and fixing bugs.

From a technical perspective, the input methods will be implemented in plain JavaScript without any third-party libraries, and then integrated into jQuery.IME.

References:

[1] Repository jquery.ime on GitHub

[2] "Universal Language Selector" on MediaWiki

[3] Task "Add Vietnamese (vi) input method" (T65465) on Phabricator

[4] "Wikipedia:AVIM" on Vietnamese Wikipedia

[5] Issue "Discussions about IMEs' porting for Asian Languages" on repository jquery.ime on GitHub

[6] "Wikipedia:Thảo luận/Cải thiện phiên bản máy tính" on Vietnamese Wikipedia

[7] "Wikipedia:Thảo luận/Đồng thuận về việc tắt AVIM và đề xuất WMF thêm bộ gõ tiếng Việt vào Universal Language Selector" on Vietnamese Wikipedia

[8] Task "Error with Vietnamese input when using search bar in new Vector (due to local AVIM gadget)" (T286863) on Phabricator

[9] "Tiện ích AVIM che nút 'Thêm' trên giao diện điện thoại?" on Vietnamese Wikipedia

5. What is the expected impact of your project, and how will you measure success?

Include the following points in your answer:

  • Milestones and progress tracking
  • Project impact and success metrics

The first milestone is to complete the design of a Vietnamese input algorithm compatible with jQuery.IME and to produce detailed documentation describing how the algorithm works. The second milestone is to provide a platform where users can test a version of jQuery.IME integrated with Vietnamese input methods, in order to gather feedback. The third milestone is to create a pull request so that the maintainers of jQuery.IME can begin reviewing and integrating the Vietnamese input methods.

I believe this project will have a significant impact on ULS. As a result, anyone who knows how to type Vietnamese will be able to do so, since ULS is available everywhere, whereas AVIM is only present on Vietnamese-language wikis. Once the integration into jQuery.IME (ULS) is completed, it will represent the full success of the project, benefiting millions of Wikimedia users.

6. Who is your target audience, and how have you confirmed there is demand for this project? How did you engage with the Wikimedia community?

Include the following points in your answer:

  • Project demand and target audience description
  • Links to interaction(s) with Wikimedia community
  • Evidence from community consultation such as the [Community Wishlist]

In essence, once this project (Vietnamese input methods) is integrated into jQuery.IME (ULS), the beneficiaries will be users who need to type in Vietnamese across all Wikimedia wikis, especially Vietnamese-language wikis, as well as multilingual platforms such as Commons, Meta, and Wikidata.

On Vietnamese Wikipedia, I have initiated a community discussion and received consensus in support of this project; please refer to: vi:Wikipedia:Thảo luận cộng đồng/Dự án Thay thế AVIM bằng ULS. Five years ago, the community also reached agreement on this issue: vi:Wikipedia:Thảo luận/Đồng thuận về việc tắt AVIM và đề xuất WMF thêm bộ gõ tiếng Việt vào Universal Language Selector, but that discussion did not lead to a definitive resolution.

7. How will your team predict and manage potential user security and privacy risks, and what risks do you currently see?

Include the following points in your answer:

  • The level of in-house or consulted security and privacy expertise you will have available to you during delivery of this project
  • How your development, testing, and deployment processes mitigate the introduction of unnecessary security or privacy risks

I will comply with WMF security policies throughout the implementation of this project. However, this project involves adding Vietnamese input methods to jQuery.IME using plain JavaScript and does not depend on any third-party code, nor does it modify the core jQuery.IME codebase. Therefore, I consider the security risk to be very low.

8. Who is on your team, and what is your experience?

Include the following points in your answer:

  • Your experience as a developer, relevant past projects
  • Wikimedia SUL (developer), Gerrit, Github, Gitlab or other relevant public account handles
  • Other team members, their roles and expertise

I am the sole contributor to this project.

I have been working on multiple software projects over the past several years; please refer to: Viettech Initiative#Activities & Projects. Among them, four projects have received funding from WMF through the Rapid Fund program.

My GitHub: plantaest

9. How will the project be maintained long-term?

Include the long-term maintenance plan with maintainer(s) in your answer. If you expect the long-term maintenance to incur expenses, please list those and the plan for long-term expense coverage.

Although the algorithm of this software may be quite complex, it is fundamentally still a small-scale project. Therefore, I will hand over its maintenance to the Vietnamese Wikipedia community (including myself) by preparing thorough documentation, so that anyone with sufficient technical understanding can support it in the long term.

10. Under what license will your code be released, and how will you ensure the product is well documented?

Include the following points in your answer:

  • Code license and compatibility with Wikimedia projects
  • Documentation plan

As this project contributes code to jQuery.IME, a software project of the Wikimedia Foundation, it will follow the same licenses used by jQuery.IME (GPLv2+ and MIT).

Regarding documentation, I will prepare comprehensive materials for both end users and developers, particularly in describing how the algorithm works, so that any technically proficient contributor can maintain it in the long term.

11. Will your project depend on or contribute to third-party tools or services?

This project will contribute Vietnamese input methods to jQuery.IME, a software project of the Wikimedia Foundation.

12. Is there anything else you’d like to share about your project? (optional)


Budget

[edit]
13. Upload your budget for this proposal or indicate the link to it. (required)
14. and 15. What is the amount you are requesting for this proposal? Please provide the amount in your local currency. (required)

131673750 VND

16. Convert the amount requested into USD using the Oanda converter. This is done only to help you assess the USD equivalent of the requested amount. Your request should be between 500 - 5,000 USD.

4999.61 USD

By submitting your proposal/funding request you confirm that you have read and agree to the Application Privacy Statement, WMF Friendly Space Policy, and the Universal Code of Conduct.

Yes

Endorsements and Feedback

[edit]

Please add endorsements and feedback to the grant discussion page only. Endorsements added here will be removed automatically.

Community members are invited to share meaningful feedback on the proposal and include reasons why they endorse the proposal. Consider the following:

  • Stating why the proposal is important for the communities involved and why they think the strategies chosen will achieve the results that are expected.
  • Highlighting any aspects they think are particularly well developed: for instance, the strategies and activities proposed, the levels of community engagement, outreach to underrepresented groups, addressing knowledge gaps, partnerships, the overall budget and learning and evaluation section of the proposal, etc.
  • Highlighting if the proposal focuses on any interesting research, learning or innovation, etc. Also if it builds on learning from past proposals developed by the individual or organization, or other Wikimedia communities.
  • Analyzing if the proposal is going to contribute in any way to important developments around specific Wikimedia projects or Movement Strategy.
  • Analysing if the proposal is coherent in terms of the objectives, strategies, budget, and expected results (metrics).

Endorse


This is an automatically generated Meta-Wiki page. The page was copied from Fluxx, the web service of Wikimedia Foundation Funds, where the user has submitted their application. Please do not make any changes to this page because all changes will be removed after the next update. Use the discussion page for your feedback. The page was created by CR-FluxxBot.