# tuyafeng/Via: a localization repository for the Via Android browser

> The Via repository is not the browser build. It holds the strings.xml files translators fork, translate and send back as pull requests, and the README carries the project's own FAQ about WebView, ad blocking and passwords.

**tuyafeng/Via** — Via is a simple browser, and this repository is set for localization.

- Repository: https://github.com/tuyafeng/Via
- Stars: 3,894 · Forks: 381
- Language: Unknown
- License: not declared
- Published: 2026-09-23 · Updated: 2026-09-23 · Language: en
- Canonical page: https://hysenlabs.com/projects/tuyafeng-via

## What tuyafeng/Via actually is, and who the repository is for

Via is an Android browser. The README describes it as "Pure & adless", "Highly customizable", "Fast like lightning" and "Small, yet awesome", and the first line calls it "Geek's Best Choice". The repository itself is not where the browser is built or distributed. Its stated purpose is localization: the README section titled "Help with localization" opens with "We encourage everyone to help with localization." The target reader is therefore a translator who wants Via's interface in a language the app does not yet ship, not an Android developer looking for the browser source. The top-level listing backs this up. It contains a .gitignore, a README.md, eleven additional README files in other languages, and a single app/ directory. There is no build documentation, no dependency manifest at the top level, and no release artifact in the listing. If your goal is to run Via, the README sends you to Google Play under the package name mark.via.gp, or to one of two APK links, one labelled "Download Global Version" and one labelled "Download Chinese Version". If your goal is to change how Via speaks, this is the right place.

## The translation workflow: fork, copy strings.xml, translate, open a pull request

The README lays the contribution process out in four numbered steps, and the whole mechanism is file placement. You fork the repository. You copy app/src/main/res/values/strings.xml into a new directory whose name follows the pattern app/src/main/res/values-%(lang)/, where %(lang) is replaced by the ISO 639-1 language code; the README links to the Library of Congress code list for that. You translate the copied file. You open a pull request. There is no translation platform, no string-extraction tool and no synchronization script described. That means the unit of work is a single XML file, and the correctness of the directory name is the part most likely to be rejected, because Android resolves resources by that suffix. The README does not document what happens when a new string appears upstream after your translation is merged, and it does not describe a fallback policy for untranslated keys. Android's own resource resolution falls back to the default values/ directory when a key is missing from a qualified directory, but the repository does not state this, so treat it as an assumption to confirm rather than a documented guarantee. The README also does not say whether partial translations are accepted.

## Installing Via and doing a first real thing with it

There is nothing to install from this repository. The README gives three distribution routes: Google Play, a global APK and a Chinese APK. The Play listing is identified by the package name mark.via.gp, and the README links the two APK files directly at res.viayoo.com.

```bash
# The README gives these links, not commands:
https://res.viayoo.com/v1/via-release.apk
https://res.viayoo.com/v1/via-release-cn.apk
```

On a device, the README's own route is the Play Store page, which it links as https://play.google.com/store/apps/details?id=mark.via.gp. Sideloading an APK is outside what the README describes, so the project does not document the permission prompts that follow.

Once Via is running, the README's first genuinely useful recipe is per-site configuration. Open a site, then click the magnifying glass or shield icon on the left side of the address bar. The README says you can configure JavaScript and a special user agent for that site there, and turn ad blocking off for it. The equivalent manual path is Settings, then General, then Site Configuration, where configurations can be added by hand.

The README's diagnostic recipe is worth knowing before you file anything. Go to Settings, then About, and tap the Via logo. The README states this reveals debugging information that includes the WebView information for your device. That matters because Via does not ship its own engine.

## Via renders with the platform WebView, and that decision has consequences

The README's first FAQ answer is the architectural fact that explains most of the rest. Via uses the WebView renderer built into Android. On Android 5.0 and above the implementation is usually Android System WebView, package com.google.android.webview, and the README advises updating it through the Play Store for a better browsing experience. So the rendering engine, its security patches and its JavaScript performance are not controlled by Via. They are controlled by whatever WebView build the device has. A user on an old or frozen WebView is on an old engine, and updating Via will not change that. The README's password FAQ is the same constraint seen from the other side: it says Google removed password saving from WebView, and suggests an autofill app such as Bitwarden or KeePass on Android 8.0 or higher. That is not a Via bug that will be fixed in a point release. It is a capability the upstream component does not expose. The QR code answer follows a different pattern and is worth reading as a correction: the README originally refused to add a scanner because too many apps already do it, and that text is struck through and replaced by a note that from version 4.3.4 Via added a built-in QR code scanner. The README is not always current, and it says so by leaving the old answer visible.

## Where this repository is the wrong tool

If you want to audit what Via does with your traffic, this repository will not help. It contains localization resources and README translations, not the browser's source, so there is nothing here to read about ad blocking rules, request interception or data handling. The README's own description of ad blocking is a user-facing control: you can turn it off for a site through the shield icon or Site Configuration. Nothing in the README explains how the blocking is implemented. The same gap applies to the "Fast like lightning" and "Pure & adless" claims, which are marketing lines in the introduction rather than measurements, and this article repeats them only as what the README says. A second wrong-tool case is platform. Via is an Android application distributed through Google Play and APK files; the README discusses Android 5.0 and Android 8.0 as version thresholds and mentions no other operating system. A third is maintenance expectation. The repository's last push was on 2026-08-24, and it is not archived. That is a recent push, but the README contains no release list and no changelog, so the push date alone tells you the repository was touched, not what changed or whether the change was a translation merge.

## Alternatives, and how the approach differs

The honest comparison is not another browser. It is another way to translate an Android app. The standard route is a hosted translation platform that holds strings in a database and exports them, so translators work in a web form and the maintainer regenerates strings.xml from the platform. Via's approach is the opposite: the XML file in the repository is the source of truth, the translator edits it directly, and review happens in a pull request diff. That gives a reviewer exact line-level control and needs no third-party account, at the cost of requiring the translator to handle XML, directory naming and Git. A second alternative is to translate the upstream project and let the maintainer sync downstream, which is what the fork-and-pull-request step already implies here. The difference from a platform is who resolves conflicts when the default strings change: with a platform the tooling usually flags stale keys, while with a raw XML copy the README assigns that to nobody. The README does not document a sync or validation step, so a translator who wants one is choosing a workflow the project has not described.

## Maintenance, upgrade cost and licensing

The cost of contributing here is the cost of tracking a moving default file. Every time a string is added or reworded in app/src/main/res/values/strings.xml, each values-%(lang)/strings.xml copy is a candidate for drift, and the README describes no mechanism to detect that drift. Practically, a translator who wants to stay current has to re-diff their file against the default periodically, which is a manual step the README does not mention. Review latency is stated indirectly: the README says issues are checked and replied to about once a week, and that email may not be answered, so a pull request should be expected to wait rather than land immediately. On licensing, the README does not state a licence for this repository and contains no licence section and no contributor licensing terms. That is a real gap if you are translating: with no stated licence, the terms of reuse are unclear, so confirm the licensing situation with the maintainer before investing in a full translation rather than assuming the strings are freely relicensable. Nothing here is legal advice; it is a statement that the README is silent.

## Conclusion

Adopt this repository if you are translating Via into a language it does not yet cover, or if you need to check what the app's own FAQ says about WebView, per-site settings and password saving. Do not adopt it if you want to build the browser: the README points to Google Play and to the two APK downloads instead, and the repository layout is a set of README translations plus an app/ directory. Before you start, verify that app/src/main/res/values/strings.xml exists at the path the README names, and check whether a values-<lang> directory for your language is already present so you extend it rather than duplicate it.

## FAQ

### Is the Via browser safe?

The README does not make a security claim, and this repository does not contain the browser's source, so there is nothing here to audit. What the README does say is that Via renders with the Android platform WebView, usually Android System WebView, which you can update through the Play Store. That means the engine's patch level follows your device's WebView, not Via's release cycle.

### What country is Via browser from?

The README does not state a country of origin. It offers a global APK and a Chinese APK as separate downloads and links to README files in Simplified and Traditional Chinese, but it never names a jurisdiction for the project.

### What does "via browser" mean?

Via is the product name of the Android browser the README describes as "Pure & adless", "Highly customizable" and "Small, yet awesome". The repository under the name tuyafeng/Via is the localization set for that browser, not the browser build itself.

### Is Via browser available for PC?

The README gives only Android distribution routes: Google Play under the package name mark.via.gp, plus a global APK and a Chinese APK. It discusses Android 5.0 and Android 8.0 as version thresholds and names no desktop platform.

## Sources

- [Issues](https://github.com/tuyafeng/Via/issues)
- [README](https://github.com/tuyafeng/Via/blob/master/README.md)
- [tuyafeng/Via on GitHub](https://github.com/tuyafeng/Via)

---

Hysen Labs editorial analysis, written from the project's own repository and release notes. Cite the canonical page: https://hysenlabs.com/projects/tuyafeng-via
