iTranslated by AI
The content below is an AI-generated translation. This is an experimental feature, and may contain errors. View original article
🟠
Major Changes to Mozc Since 2020
First draft: 2021-10-10
This is a summary of the major changes to Mozc since 2020. I have compiled information from documents, commit logs, and Issues, so there is no new information here. I will add any missing items later.
Please report problems or requests for Mozc to GitHub Issues or Discussions.
Related Articles
- Major changes to Mozc from October 2024 to October 2025
- Major changes to Mozc since October 2023
- Major changes to Mozc since October 2022
- Major changes to Mozc since October 2021
- Major changes to Mozc since 2020 : This article
Build-related
Migration from Python 2 to Python 3
- Migration to Python 3 has been completed
Migration from GYP to Bazel
Linux Build
- Migration from GYP to Bazel completed
- GYP is now in maintenance mode
- New features are supported only in Bazel
macOS Build
- Migrating to Bazel
- GYP remains the primary build method
- Building with Bazel is already possible (experimental)
Windows Build
- GYP is still the primary build method
- Requires patching GYP
Android Build
- Migration from GYP to Bazel
- Only Bazel is supported
- Only the conversion engine (C++) is supported
- Client (Java) code can be referenced from tag:2018-02-26
New Features Supported Only in Bazel
- Additional dictionaries
- ZIP code conversion
- Qt-based candidate window (for IBus)
- Icon images
Coding Style Updates
- Conforms to the Google C++ Style Guide
- Adopted up to C++17
- However, it must be compatible with MS Visual Studio 2017
- Lambda functions / Rvalue references / default and delete functions, etc.
- Adoption of Abseil
- Status / hash / string_view / string manipulation / time libraries, etc.
- Targets Python 3.5 or later
- Do not use f-strings (available from 3.6)
- Do not use encoding in the subprocess module (available from 3.6)
New Features and Bug Fixes
Additional Dictionaries
- Additional data that can accept pull requests (Bazel build only)
- src/data/oss/aux_dictionary.tsv
- commit/7500b9bfceeec49329d82a018d5571f8a80b1e16
ZIP Code Conversion
- Conversion from ZIP codes (Bazel build only)
- commit/2d434cb612b680cdc1bdaf4b036be606ef3856f0
Qt-based Candidate Window (for IBus)
- Migration from Gtk2 (Bazel build only)
- issues/492
- A problem where CPU consumption reaches 100% in some environments has been reported (under investigation)
Icon Images
- Generation of tool icons etc. using SVG (Bazel build only)
- issues/498
Compliance with XDG
- Migration of the configuration directory from ~/.mozc to ~/.config/mozc
- issues/474
Customizing Date Formats
- Allows customization of date conversion formats (e.g., きょう → 2021-10-01)
- Expressible as "{YEAR}.{MONTH}.{DATE}"
- Since this is an experimental feature, it may be removed or its specifications may change
- docs/configurations.md#date-format-converted-from-きょう
Input Mode and Keyboard Layout in IBus
- Initial input mode can be changed to Hiragana
- Keyboard layout can be fixed to JIS layout, etc.
- Managed in ~/config/.mozc/ibus_config.textproto
- docs/configurations.md#ibus
Simultaneous Input (Timeout Input) Settings
- Romaji settings such as "k → い", "d → か", "kd simultaneously → れ" are possible
- issues/512
Removal of Bundled Features
- Removal of the handwriting input tool and character palette
- Code can be referenced from tag:2018-02-26
Crash in Anki (IBus)
- Fixed. Out-of-spec values were being sent from the client.
- issues/510
First Character Not Input in Chrome
- In most cases, this is not a problem with Mozc
- If you are using fcitx, switching to fcitx5 often resolves the issue
Pull Requests
Files and Directories Eligible for Pull Requests
Pull requests can be accepted for the following files and directories (Reference)
- Files directly under the top directory
- docker/
- docs/
- src/.bazelrc
- src/BUILD.(library).bazel
- src/data/oss/
- src/data/test/quality_regression_test/
- src/unix/emacs/mozc.el
- src/WORKSPACE.bazel
For administrative reasons, these are primarily files that are not referenced by GYP.
Conversion Test Data
- Strings that cannot be converted can be submitted as test cases via pull requests
Additional Dictionaries
- Words not in the dictionary can be submitted as pull requests by adding them to aux_dictionary.txt
Discussion