Add Russian README and in-app download link

- New README.ru.md (Russian) with a download section pointing to the
  GitHub releases page; both READMEs cross-link via a language switcher
- Add 'Download FoxiGram' row in Foxi settings opening the releases page
- Provide English and Russian strings for the download row and the
  previously added phone-number privacy option
This commit is contained in:
instant992 2026-06-10 03:26:32 +04:00
parent 87b8ea4949
commit d1bd2d7b2d
5 changed files with 103 additions and 0 deletions

View file

@ -1,8 +1,23 @@
# FoxiGram
**English** · [Русский](README.ru.md)
An unofficial Telegram client based on Nekogram, with a built-in VLESS+Reality
proxy client (Xray) for bundled, one-tap proxy access.
## Download
Latest builds are on the releases page:
**https://github.com/instant992/FoxiGram/releases**
Download `FoxiGram-<version>-<code>-arm64-v8a.apk` from the newest release and
install it on your device (you may need to allow installs from unknown
sources).
You can also open the download link straight from the app:
**Settings → Foxi → Download FoxiGram**.
## Built-in proxy servers
Server credentials are intentionally kept out of this repository.

75
README.ru.md Normal file
View file

@ -0,0 +1,75 @@
# FoxiGram
[English](README.md) · **Русский**
Неофициальный клиент Telegram на базе Nekogram со встроенным
прокси-клиентом VLESS+Reality (Xray) для доступа к прокси в одно касание.
## Скачать
Свежие версии — на странице релизов:
**https://github.com/instant992/FoxiGram/releases**
Скачайте файл `FoxiGram-<версия>-<код>-arm64-v8a.apk` из последнего релиза и
установите его на устройстве (для этого может понадобиться разрешить установку
из неизвестных источников).
Ссылку на скачивание также можно открыть прямо из приложения:
**Настройки → Foxi → Скачать FoxiGram**.
## Встроенные прокси-серверы
Данные серверов намеренно не хранятся в этом репозитории.
- Реальные серверы лежат в файле
`TMessagesProj/src/main/java/org/telegram/messenger/XrayServers.java`,
который исключён из git.
- Шаблон находится в `XrayServers.java.template`.
Чтобы настроить свои встроенные прокси:
```sh
cd TMessagesProj/src/main/java/org/telegram/messenger/
cp XrayServers.java.template XrayServers.java
# затем отредактируйте XrayServers.java и впишите данные своих серверов VLESS+Reality
```
Если оставить адреса пустыми, встроенные прокси отключатся — приложение всё
равно соберётся и будет работать, просто в списке прокси не будет
предзаданных записей.
## Нативная библиотека Xray (libxray.so)
Ядро прокси — небольшая Go-обёртка над xray-core, собранная как разделяемая
JNI-библиотека. Исходники в `libxray/`. Скомпилированный `libxray.so` исключён
из git и собирается локально.
Сборка под Android arm64 (нужны Go и Android NDK):
```sh
cd libxray
go mod tidy
set CGO_ENABLED=1
set GOOS=android
set GOARCH=arm64
set CC=<NDK>/toolchains/llvm/prebuilt/<host>/bin/aarch64-linux-android21-clang
go build -buildmode=c-shared -o ../TMessagesProj/src/main/jniLibs/arm64-v8a/libxray.so .
```
## Сборка приложения
Обычная сборка через Gradle:
```sh
./gradlew :TMessagesProj_App:assembleRelease -Pandroid.injected.build.abi.filter=arm64-v8a
```
Итоговый APK называется `FoxiGram-<версия>-<код>-<abi>.apk`.
## Примечания
- `google-services.json`, ключи подписи и `local.properties` не хранятся в
репозитории. Для релизной сборки подставьте свои.
- Это форк для личного использования. Основан на Nekogram, который основан на
Telegram для Android.

View file

@ -65,6 +65,7 @@ public class NekoSettingsActivity extends BaseNekoSettingsActivity implements Fa
private final int accessibilityRow = rowId++;
private final int sourceCodeRow = rowId++;
private final int downloadRow = rowId++;
private final int translationRow = rowId++;
private final int donateRow = rowId++;
private final int checkUpdateRow = rowId++;
@ -168,6 +169,7 @@ public class NekoSettingsActivity extends BaseNekoSettingsActivity implements Fa
items.add(UItem.asShadow(null));
items.add(UItem.asButton(sourceCodeRow, R.drawable.msg_link, LocaleController.getString(R.string.ViewSourceCode), "GitHub").slug("sourceCode"));
items.add(UItem.asButtonSubtext(downloadRow, R.drawable.msg_download, LocaleController.getString(R.string.FoxiDownload), LocaleController.getString(R.string.FoxiDownloadAbout)).slug("download"));
items.add(UItem.asButtonSubtext(translationRow, R.drawable.msg_translate, LocaleController.getString(R.string.Translation), LocaleController.getString(R.string.TranslationAbout)).slug("translation"));
items.add(UItem.asButtonSubtext(donateRow, R.drawable.msg_input_like, LocaleController.getString(R.string.Donate), LocaleController.getString(R.string.DonateAbout)).slug("donate"));
items.add(UItem.asButtonSubtext(checkUpdateRow, R.drawable.msg_reset, LocaleController.getString(R.string.CheckUpdate), UpdateHelper.formatDateUpdate(SharedConfig.lastUpdateCheckTime)).slug("checkUpdate"));
@ -223,6 +225,8 @@ public class NekoSettingsActivity extends BaseNekoSettingsActivity implements Fa
Browser.openUrl(getParentActivity(), "https://neko.crowdin.com/nekogram");
} else if (id == sourceCodeRow) {
Browser.openUrl(getParentActivity(), "https://github.com/instant992/FoxiGram");
} else if (id == downloadRow) {
Browser.openUrl(getParentActivity(), "https://github.com/instant992/FoxiGram/releases");
} else if (id >= sponsorRow) {
var news = newsList.get(id - sponsorRow);
Browser.openUrl(getParentActivity(), news.url);

View file

@ -103,6 +103,8 @@
<string name="ProviderMicrosoftTranslator">Microsoft Translator</string>
<string name="TranslationProviderShort">Поставщик</string>
<string name="ViewSourceCode">Посмотреть исходный код</string>
<string name="FoxiDownload">Скачать FoxiGram</string>
<string name="FoxiDownloadAbout">Скачайте свежую версию и поделитесь с друзьями</string>
<string name="AvatarAsBackground">Фото профиля в качестве фона</string>
<string name="BlurAvatarBackground">Размытие фотографии профиля</string>
<string name="DarkenAvatarBackground">Затемнение фотографии профиля</string>
@ -336,4 +338,9 @@
<string name="FoxAccountSubExpired">Подписка истекла</string>
<string name="FoxAccountSubNone">Нет подписки</string>
<string name="FoxAccountDaysLeft">осталось %1$d дн.</string>
<string name="HidePhoneNumber">Мой номер телефона</string>
<string name="HidePhoneNumberAbout">Выберите, как отображается ваш номер телефона в приложении (шапка настроек и профиль). Меняется только вид на этом устройстве.</string>
<string name="HidePhoneNumberShow">Показывать</string>
<string name="HidePhoneNumberBlur">Размыть</string>
<string name="HidePhoneNumberHide">Скрыть</string>
</resources>

View file

@ -112,6 +112,8 @@
<string name="ProviderMicrosoftTranslator">Microsoft Translator</string>
<string name="TranslationProviderShort">Provider</string>
<string name="ViewSourceCode">View source code</string>
<string name="FoxiDownload">Download FoxiGram</string>
<string name="FoxiDownloadAbout">Get the latest version and share it with friends</string>
<string name="AvatarAsBackground">Profile picture as background</string>
<string name="BlurAvatarBackground">Blur profile picture</string>
<string name="DarkenAvatarBackground">Darken profile picture</string>