13 Aug 2026
Planet Mozilla
Mozilla Localization (L10N): L10n Report: August Edition 2026
Please note some of the information provided in this report may be subject to change as we are sometimes sharing information about projects that are still in early stages and are not final yet.
Welcome!
Are you a locale leader and want us to include new members in our upcoming reports? Contact us!
Changes to the localization team
A lot has changed in the team this year. Delphine and Peiying left Mozilla a few months ago, and we're now happy to welcome three new members:
- Camila (parker) will focus on our mobile projects (Android and iOS), while also helping with Spanish localization.
- Eda (edie) will focus on our web projects (mozilla.org, firefox.com, AMO, etc.), while also helping with Turkish localization.
- Eric (ewerybody) will work alongside Eemeli and Matjaž to support and improve our localization infrastructure, including the moz-l10n library that powers several features in Pontoon.
For both Camila and Eda, contributing directly in Pontoon will also be an important part of getting to know our localization community. By working as localizers themselves, they'll experience firsthand the challenges contributors encounter and gain a better understanding of how our communities organize and work together.
In the coming months, we'll publish a series of blog posts to introduce our new team members - and reintroduce some familiar faces, since it's either been a while or we never got around to introducing them when they joined.
What's new or coming up in Firefox desktop
Firefox 155 Beta
Today marks the beginning of the Beta cycle for Firefox 155 and the start of the shift to Firefox's 2-week release cycle. You can find more information on this change and how it affects you in our update here: Firefox Release Changes and Localization.
Themes
A new part of the upcoming Firefox redesign is a number of built-in themes a user can select for their profile. The theme-picker.ftl strings are landing in Firefox 155 and include a number of theme names which are short, evocative names in English. We have generated a reference document to help with creating localized names in your languages, it includes both testing instructions and screenshots.
What's new or coming up in SUMO
We would love more helping hands to bring the following locales across the finish line:
- Spanish - 48% remaining
- Japanese - 19% remaining
- Portuguese (Brazil) - 11% remaining
- Portuguese (Portugal) - 17% remaining
If you're a contributor in one of these locales, now is a great time to jump in. Every translated string brings us one step closer to shipping a better experience for users around the world!
What's new or coming up in Pontoon
Editor theme. The translation editor can now follow your theme choice. You can set the editor theme independently of the main interface - Light, Dark, or Main to match the rest of Pontoon. The change comes from Ayush (ayshushus), who is interning with the L10n team and wrote about the work on this blog back in July.
Copy from another locale. A new batch action lets you copy translations from another locale into the strings you've selected. It's especially handy for closely related languages, or for locales that share terminology and want to bootstrap from an existing translation as a starting point. The feature was contributed by Serah (MundiaNderi), a volunteer contributor who wrote about her work on Pontoon earlier this year.
Community health. Teams can now follow their Community Health Score over time in a new chart on the team Insights tab, alongside the existing activity charts. The L10n team also gets a cross‑locale overview to spot communities that may need support. The dashboard was built by Jamie (functionzz), who is interning with the L10n team. See his previous blog post on translation search unification.
Composed Machinery suggestions. Fluent messages with attributes or selectors used to require copying each field separately, one match at a time. Machinery now offers a single suggestion that covers the entire message: every field is filled from a perfect translation memory match, falling back to machine translation, and one click copies all of them into the editor at once.
Automatic LLM suggestions. Until now, getting an LLM suggestion meant opening the AI menu on a machine translation result and picking an option. The suggestion is now generated automatically and shown as its own entry in the Machinery panel. We're starting with a limited rollout - signed‑in users, strings without an approved translation, and a small set of locales - so we can evaluate quality and cost before expanding. The AI menu keeps working as before, in every locale.
Other improvements. A number of more focused changes also landed, thanks to our contributors:
- Notifications about new strings now link only to the strings that were actually added, instead of the full resource - by flodolo (#4185).
- A year selector was added to the chart on profile pages - by flodolo (#4205).
- The list of translations on a Search page is now more compact and easier to scan - by functionzz (#4157).
- Search boxes now look and behave consistently across the entire app - by MundiaNderi (#4301).
- A clear "String not found" page is now shown when the active filters don't match the string you're opening - by ayshushus (#4281).
- Profile images from Mozilla accounts are now supported - by wassafshahzad (#4215).
- String counts in the translate interface are now formatted using your locale's own conventions instead of a hardcoded en‑GB - by ewerybody (#4127).
New contributors. We're happy to welcome another group of contributors who made their first patches to Pontoon in the past few months: Kasturijadhav14 (6 patches), eshu3104 (2), jbuck, troypsierrallc-dot, msranjana, and denyshon. Their work spans notifications, contributor profiles, documentation, UI polish, the API, and infrastructure - thank you all!
Friends of the Lion
Image by Elio Qoshi
Know someone in your l10n community who's been doing a great job and should appear here? Contact us and we'll make sure they get a shout-out!
Useful Links
- #l10n-community channel on Element (chat.mozilla.org)
- Localization category on Discourse
- Mastodon
- L10n blog
Questions? Want to get involved?
If you want to get involved, or have any question about l10n, reach out to:
- Bryan - Project Manager (Firefox, Mozilla Accounts)
- Camila - Project Manager (Firefox for Android, Firefox for iOS)
- Eda - Project Manager (Web projects)
- Francesco (flod) - Project Manager, L10n Team Manager
- Francis - Project Manager (Common Voice, Mozilla Foundation)
- Théo - Project Manager (Mozilla Foundation)
- Kiki - Project Manager (SUMO)
- Eemeli - Developer (Pontoon, Infrastructure)
- Eric - Developer (Pontoon, Infrastructure)
- Matjaž (mathjazz) - Developer (Pontoon)
Did you enjoy reading this report? Let us know how we can improve it.
13 Aug 2026 8:38pm GMT
Jonathan Almeida: Regenerate the BuildConfig file without assembling the whole module
We have tokens that are added to official builds when a CI server is building the production-ready application. These tokens are added to the BuildConfig.java by using the [buildConfigField]1 function in a build.gradle.
While testing, you want to quickly regenerate just this file to see changes occur with a new value. Instead of using the more expensive assembleDebug task for your debug variant, you can use generateDebugBuildConfig.
In the Firefox monorepo world for the Fenix module, the fully-qualified task name would look like this:
./mach gradle :fenix:generateDebugBuildConfig13 Aug 2026 12:00am GMT
12 Aug 2026
Planet Mozilla
This Week In Rust: This Week in Rust 664
Hello and welcome to another issue of This Week in Rust! Rust is a programming language empowering everyone to build reliable and efficient software. This is a weekly summary of its progress and community. Want something mentioned? Tag us at @thisweekinrust.bsky.social on Bluesky or @ThisWeekinRust on mastodon.social, or send us a pull request. Want to get involved? We love contributions.
This Week in Rust is openly developed on GitHub and archives can be viewed at this-week-in-rust.org. If you find any errors in this week's issue, please submit a PR.
Want TWIR in your inbox? Subscribe here.
Updates from Rust Community
Official
Foundation
- Rust Team Health Summit: September 8 in Montréal
- Catching Up with the Rust Content Team: RustWeek Interviews and a New Changelog Series
Newsletters
Project/Tooling Updates
We are making changes to the Project/Tooling Updates Section - see here for more details
- Bevy's Sixth Birthday
- fearless_simd v0.7: 64-bit integers, improved generics, SSE2, and upcoming v1.0
- vairedb 0.1.0 - Cloud Native Distributed Analytical Database
- OXVG 0.0.7: introducing an SVG-to-JSX transformer to the OXVG toolchain
- HTML, JavaScript, CSS should have died long ago
- Even more formal verification for BPF
- kache 0.14.0: debuggable restores and cross-clone convergence
- kobe 0.39.0: hardening the cluster-lease lifecycle
- renew 0.1.1: a deterministic, code-first game engine
- GRIT 1.1: type-check your quantized tensors
- floDl: Introducing AMD GPU support
- git-cache-proxy: read-only cache for git
Observations/Thoughts
- A Vision for Cargo
- Cylic trait implementations: motivation
- Rust SIMD on the GPU
- Rewriting in Rust: Performance, Failures, 2026 Reality Check
- RangeFrom, Part 1..: History and background
- Typed Conversations: Make Illegal Agent Dialogues Unrepresentable
- ECQV: implicit certificates, and why I kept them out of the project that motivated them
- TLS Handshakes: Measuring the Performance of 4 Cryptography Libraries
- Building scalable backend services with Rust and PostgreSQL
- PoC for universal hardware-in-the-loop HAL test suite - Tweede golf
- [video] FLOSS 878 - A Tool With Opinions
Rust Walkthroughs
- Downcasting Arcs in Rust
- Profiling Rust with hotpath-rs: The Complete Guide - From SQL Queries to CPU Sampling
- A chip-agnostic architecture for bare-metal embedded Rust
Research
Miscellaneous
Crate of the Week
This week's crate is literator, a crate for efficiently displaying the items of an iterator without temporary allocations.
Thanks to Nora for the suggestion!
Please submit your suggestions and votes for next week!
Calls for Testing
An important step for RFC implementation is for people to experiment with the implementation and give feedback, especially before stabilization.
If you are a feature implementer and would like your RFC to appear in this list, add a call-for-testing label to your RFC along with a comment providing testing instructions and/or guidance on which aspect(s) of the feature need testing.
No calls for testing were issued this week by Rust, Cargo, Rustup or Rust language RFCs.
Let us know if you would like your feature to be tracked as a part of this list.
Call for Participation; projects and speakers
CFP - Projects
Always wanted to contribute to open-source projects but did not know where to start? Every week we highlight some tasks from the Rust community for you to pick and get started!
Some of these tasks may also have mentors available, visit the task page for more information.
If you are a Rust project owner and are looking for contributors, please submit tasks here or through a PR to TWiR or by reaching out on Bluesky or Mastodon!
CFP - Events
Are you a new or experienced speaker looking for a place to share something cool? This section highlights events that are being planned and are accepting submissions to join their event as a speaker.
If you are an event organizer hoping to expand the reach of your event, please submit a link to the website through a PR to TWiR or by reaching out on Bluesky or Mastodon!
Updates from the Rust Project
698 pull requests were merged in the last week
Compiler
- check the fallback map before queueing child in
visible_parent_mapbreadth-first search - enable polonius alpha on nightly
- improve
canonical_param_env_cache - interpret: skip deref-projection validity checks when they are not needed
- optimize crate resolution for large workspace
- optimize handling of solver errors
- optimize
try_evaluate_obligations - perf: cache already-checked types in the privacy visitor
- perf: lock-free root fast paths for hygiene queries
- perf: skip irrelevant foreign impls when building the specialization graph
- perf: store the fulfillment engine inline in ObligationCtxt
- shallow resolve ty and const vars to their root vars, attempt 2
- speed up
EverInitializedPlaces - split
apply_primary_terminator_effect - stabilize
c_variadic_naked_functions
Library
- add fast path to
escape_string_symbol - core: generalize
BorrowedCursor::ensure_init - hint that memchr returns an in-bounds index
- implement
<OnceCell,OnceLock>::new_init - implement
to_string()onByteStrandByteString - introduce a
PinSafePointertrait that generalizesPinCoerceUnsized - mark const ptr methods and free functions as
inline(always)to match *mut - optimize
slice::containsfor one-byte BytewiseEq types - single-pass ASCII lower/upper case conversion
- stabilize
fs_set_times
Cargo
docs(changelog): Pull the --verbose itemdocs(ref): Add missing config env variablesfeat(log): emit build-started JSON message withrun_idfeat(profile): Add built-in profile debugfeat(resolver): Report the min-publish-age in the lock messagefeat(toml): allow overriding inherited default-features in 2024feat(trim-paths): emit unremap files for final artifactsfix(clean): respect target with --docfix(diag): Ensure diagnostic titles work without snippetsfix(diag): Gateblanket_hint_mostly_unusedwith -Zprofile-hint-mostly-unusedfix(diag): Remove complexity, perf, and nursery lint groupsfix(git): Avoid use of git's core.fsmonitorfix(lock): Use more accurate 'highest, rather than 'latest'fix(resolver): Make min-publish-age relative to --publish-timefix(trim-paths): /cargo/depsfallback sourcesfix(trim-paths): workspace remap under -Zroot-dirrefactor(resolver): resolve()does not need an optional gctxrevert(compiler): forward verbose flag to rustc for local cratestest(trim-paths): exercise unremap files with debuggers- doc: don't use mergeable info and json together
- fix funding link
- refactor: remove unnecessary mut in sources
- test: handle non-deterministic compilation order
Rustdoc
- Create output file after we checked that the standalone markdown file is valid
- Do not take
doc(cfg())into account when filtering doctests
Clippy
cast_possible_truncation: fixtry_fromsuggestion expanding macros- don't lint
semicolon_if_nothing_returnedin#[automatically_derived]… - fix
needless_range_loopsuggests wrongly for nested index needless_bool: lint the early-return guard form- new lint: nonzero operators and methods
redundant_pattern_matching: parenthesize guardedmatches!suggestionunwrap_or_default: respect MSRV for raw-pointer Default impls
Rust-Analyzer
- account for trailing line continuations in byte strings
- support
#[rustc_must_implement_one_of]in the assists - add
replace_arith_with_strictassist term_searchexclude useless target type- add parens on some common cases for
type_mismatch - allow
structliterals in match guards insideletexprs - always allocate anon consts for c-strings/byte-strings literals
- avoid array len type mismatch with string panic
- avoid escaping bound vars produced by
infer_method_call's skip_binder - bound macro expansion depth across body and block boundaries
- do not consider locals of
async fnas upvars of the returned coroutine - do not declare the value NS constructor for structs/enum variants if it does not exist
- don't panic when a lifetime is passed to an
identmetavariable - fix 'no entry found for key' panic in VFS
- fix upvars query of const block inside closure
- fixed positive diagnostic for valid code
- initialize
macro_depthto the file's macro depth in docs.rs and assoc.rs - let
Param::parent_fnreturn function for BuiltinDeriveImplMethod methods - normalize associated types in orphan checks
- off-by-one in lifetime binders when lowering
dyn Trait<'a> - optimize memory usage of the item tree
- parse inline asm with keyword as operand name
- parse or pattern after range pattern
- preserve trailing text when
InsertReplaceEditis unsupported - remove extra spaces in full function signatures
- support macros in
#[doc]attributes in IDE features - unresolved type variables shouldn't escape impl selection
- when searching for a
pub macro, consider it available to reverse dependencies
Rust Compiler Performance Triage
This week so many new performance improvements landed that we needed to roll 10 of them up together to keep the bors queue manageable, great work! Also new is the LLVM 23 update which caused massive compile-time, run-time, bootstrap time and artifact size improvements. These improvements are reduced by the merge of Polonius Alpha on nightly causing a 3.0% regression. There still seems to be some potential to mitigate this regression.
Triage done by @JonathanBrouwer. Revision range: 65dd30fb..771916f9
Summary:
| (instructions:u) | mean | range | count |
|---|---|---|---|
| Regressions ❌ (primary) |
4.6% | [0.2%, 12.8%] | 24 |
| Regressions ❌ (secondary) |
4.3% | [0.2%, 14.3%] | 30 |
| Improvements ✅ (primary) |
-3.3% | [-16.4%, -0.2%] | 251 |
| Improvements ✅ (secondary) |
-5.2% | [-34.8%, -0.2%] | 308 |
| All ❌✅ (primary) | -2.6% | [-16.4%, 12.8%] | 275 |
1 Regression, 4 Improvements, 7 Mixed; 5 of them in rollups 25 artifact comparisons made in total
Approved RFCs
Changes to Rust follow the Rust RFC (request for comments) process. These are the RFCs that were approved for implementation this week:
Final Comment Period
Every week, the team announces the 'final comment period' for RFCs and key PRs which are reaching a decision. Express your opinions now.
Tracking Issues & PRs
- std: map ENOTSUP to ErrorKind::Unsupported- #158580
- feat: add symmetric PartialEq impls for
Vec,&[T],&mut [T]versusCow<'_, [T]> - Add
Defaultimplementation forstd::sync::Once - Extend
dropping_{references,copy_types}lints todrop_in_place - lint on more incorrect usages of
core::ffi::c_void - target_features: sse (or at least avx2) is incompatible with soft-float ABI
- Make let-else respect macro_rules expr metavariable grouping
- PowerPC inline ASM: Fix scalar floats being in the wrong vector lane on little endian
- stabilize
Box::take - make closures act like MaybeDangling
- enable next solver by default in orphanck
- Error on projection of dyn noncompat type in old trait solver
- Stabilize
-Zprofile-sample-use
- Stop using dlltool for generating import libraries on MinGW
- Promote riscv64a23-unknown-linux-gnu to Tier 2 with host tools
- Drop tier 2
i686-pc-windows-gnuhost tools
No Items entered Final Comment Period this week for Rust RFCs, Language Reference, Cargo, Language Team or Unsafe Code Guidelines. Let us know if you would like your PRs, Tracking Issues or RFCs to be tracked as a part of this list.
New and Updated RFCs
Upcoming Events
Rusty Events between 2026-08-12 - 2026-09-09 🦀
Virtual
- 2026-08-13 | Virtual (Berlin, DE) | Rust Berlin
- 2026-08-13 | Virtual (Nürnberg, DE) | Rust Nuremberg
- 2026-08-14 | Virtual (Girona, ES) | Rust Girona
- 2026-08-16 | Virtual (Bangalore, IN) | Embedded Rust
- 2026-08-18 | Virtual (Washington, DC, US) | Rust DC
- 2026-08-19 | Hybrid (Vancouver, BC, CA) | Vancouver Rust
- 2026-08-20 | Hybrid (Seattle, WA, US) | Seattle Rust User Group
- 2026-08-20 | Virtual (Charlottesville, VA, US) | Charlottesville Rust Meetup
- 2026-08-21 | Virtual (Girona, ES) | Rust Girona
- 2026-08-25 | Virtual (Dallas, TX, US) | Dallas Rust User Meetup
- 2026-08-27 | Virtual (Berlin, DE) | Rust Berlin
- 2026-08-28 | Virtual (Girona, ES) | Rust Girona
- 2026-08-31 | Virtual (Global) | Rust Maven
- 2026-09-01 | Virtual (Global) | Rust Maven
- 2026-09-02 | Virtual (Indianapolis, IN, US) | Indy Rust
- 2026-09-04 | Virtual (Girona, ES) | Rust Girona
- 2026-09-08 | Virtual (Dallas, TX, US) | Dallas Rust User Meetup
- 2026-09-08 | Virtual (London, UK) | Women in Rust
Africa
- 2026-09-08 | Johannesburg, ZA | Johannesburg Rust Meetup
Asia
- 2026-08-22 | Bangalore, IN | Rust Bangalore
- 2026-08-22 | Delhi, IN | Rust Delhi
- 2026-08-22 | Noida, IN | SciPy India
- 2026-08-29 | Pune, IN | Rust Pune
Europe
- 2026-08-13 | Switzerland, CH | PostTenebrasLab
- 2026-08-18 | Aarhus, DK | Rust Aarhus
- 2026-08-18 | Leipzig, DE | Rust - Modern Systems Programming in Leipzig
- 2026-08-20 | Frankfurt, DE | Rust Rhein-Main
- 2026-08-27 | Manchester, UK | Rust Manchester
North America
- 2026-08-13 | Lehi, UT, US | Utah Rust
- 2026-08-13 | San Diego, CA, US | San Diego Rust
- 2026-08-15 | San Francisco, CA, US | Flower
- 2026-08-18 | San Francisco, CA, US | San Francisco Rust Study Group
- 2026-08-19 | Hybrid (Vancouver, BC, CA) | Vancouver Rust
- 2026-08-19 | San Francisco, CA, US | Bay Area Rust
- 2026-08-20 | Mountain View, CA, US | Hacker Dojo
- 2026-08-20 | New York, NY, US | Rust NYC
- 2026-08-20 | Hybrid (Seattle, WA, US) | Seattle Rust User Group
- 2026-08-26 | Austin, TX, US | Rust ATX
- 2026-08-26 | Los Angeles, CA, US | Rust Los Angeles
- 2026-08-27 | Atlanta, GA, US | Rust Atlanta
- 2026-09-03 | Saint Louis, MO, US | STL Rust
- 2026-09-08 | Montreal, QC, CA | Rust Foundation
- 2026-09-08 - 2026-09-11 | Montreal, QC, CA | RustConf 2026
- 2026-09-09 | Montreal, QC, CA | Women in Rust
Oceania
- 2026-08-27 | Melbourne, AU | Rust Melbourne
If you are running a Rust event please add it to the calendar to get it mentioned here. Please remember to add a link to the event too. Email the Rust Community Team for access.
Jobs
Please see the latest Who's Hiring thread on r/rust
Quote of the Week
The AI discussion was already put to bed as off topic and derailing. Do not summon the Mods so carelessly, as they are wroth, and filled with cruel vengeance.
Thanks to Jonas Fassbender for the suggestion!
Please submit quotes and vote for next week!
This Week in Rust is edited by:
- nellshamrell
- llogiq
- ericseppanen
- extrawurst
- U007D
- mariannegoldin
- bdillo
- opeolluwa
- bnchi
- KannanPalani57
- tzilist
Email list hosting is sponsored by The Rust Foundation
12 Aug 2026 4:00am GMT

