mirror of
https://github.com/GTNewHorizons/GTNHLib.git
synced 2026-11-08 12:34:52 +00:00
Add Ukrainian 🇺🇦 (uk_UA) localization and translate documentation (#455)
This commit is contained in:
1 parent
766b8f483c
commit
fe0466e04f
5 files changed
+549
No files matched your search
@@ -1,6 +1,8 @@
|
||||
GTNHLib
|
||||
=======
|
||||
|
||||
🌐 **Languages:** [English](README.md) | [Українська](README_uk.md)
|
||||
|
||||
## About
|
||||
|
||||
Shared code library for GTNH mods.
|
||||
|
||||
@@ -0,0 +1,76 @@
|
||||
GTNHLib
|
||||
=======
|
||||
|
||||
🌐 **Мови:** [English](README.md) | [Українська](README_uk.md)
|
||||
|
||||
## Про бібліотеку
|
||||
|
||||
Спільна бібліотека коду для модів GTNH.
|
||||
|
||||
## Можливості
|
||||
|
||||
### Налаштування
|
||||
|
||||
- Визначення налаштувань за допомогою анотації `@Config` для класу. Кожне поле стає параметром конфігурації.
|
||||
- Встановлення значень за замовчуванням, діапазонів, коментарів та ключів локалізації за допомогою анотацій полів, таких як `@DefaultInt`, `@RangeInt` та `@Comment`.
|
||||
- Бібліотека зчитує, записує та перевіряє файл `.cfg` за вас. Жодних ручних викликів `Configuration`.
|
||||
- Позначення полів анотацією `@Sync` для надсилання значень із сервера клієнтам під час підключення.
|
||||
- Створення графічного інтерфейсу налаштувань Forge прямо з анотацій.
|
||||
|
||||
### Події
|
||||
|
||||
- Викликає `InventoryChangedEvent`, коли змінюється загальна кількість предметів в інвентарі гравця. Підписуйтесь на `ItemAdded` або `ItemRemoved`, які містять змінений `ItemStack`, дельту зі знаком, а також `inventoryCount` — загальну кількість цього предмета у гравця після зміни.
|
||||
- Предмети зіставляються за типом і метаданими, ігноруючи NBT, тому сортування інвентарю не викликає жодних подій. Сканування виконується кожні кілька тактів (можна налаштувати).
|
||||
- Викликає `PickBlockEvent`, коли гравець клацає середньою кнопкою миші по блоку.
|
||||
- Позначте клас анотацією `@EventBusSubscriber` для автоматичної реєстрації його методів `@SubscribeEvent`. Виберіть сторону та етап завантаження в анотації. Ручна реєстрація не потрібна.
|
||||
|
||||
### Предмети
|
||||
|
||||
- `ImmutableItemStack` обгортає стек як доступний лише для читання, щоб запобігти випадковим змінам.
|
||||
- `ItemTransfer` переміщує предмети між `ItemSource` та `ItemSink` за допомогою фільтрів-предикатів та обмежень кількості.
|
||||
- Перебирайте будь-який `IInventory` за допомогою `InventoryIterator`, включно зі слотами, прив’язаними до сторін блока.
|
||||
- Інтерфейси джерела та приймача абстрагують вилучення та вставлення предметів, тому логіка переміщення працює з будь-яким типом інвентарю.
|
||||
|
||||
### Рендеринг
|
||||
|
||||
- Рендеринг предметів з кількома накладеними текстурними шарами шляхом реалізації `ItemWithTextures`. Реєструйте за допомогою `TexturedItemRenderer`.
|
||||
- `CapturingTesselator` захоплює квади рендерингу поза основним потоком для пакетної або асинхронної візуалізації.
|
||||
- Допоміжні класи для анімованих підказок та HUD-повідомлень над панеллю швидкого доступу.
|
||||
|
||||
### Стан блоку
|
||||
|
||||
- Реєстрація власних властивостей блоку: boolean, int, enum, direction, axis та orientation.
|
||||
- Пакування та зчитування значень властивостей із метаданих блоку, щоб на версії 1.7 блоки поводилися як сучасні стани блоків.
|
||||
- Включає команду `blockstate` для перевірки стану блоку за координатами.
|
||||
|
||||
### Команди
|
||||
|
||||
- Brigadier command API для сучасного парсингу, автодоповнення та виконання команд на версії 1.7.
|
||||
- Реєстрація власних ігрових правил за допомогою `GameRuleRegistry`. Бібліотека вбудовується у ванільну систему ігрових правил, щоб сповіщати ваші правила про зміни.
|
||||
|
||||
### Команди гравців
|
||||
|
||||
- Система керування командами гравців з ролями, складом учасників та адміністративними командами.
|
||||
- Реєстрація власних даних команди за допомогою `TeamDataRegistry`. Бібліотека зберігає їх на диск і синхронізує з клієнтами.
|
||||
|
||||
### Мережа
|
||||
|
||||
- Надсилання екранних повідомлень, повідомлень над панеллю швидкого доступу та дальності промальовування клієнтам.
|
||||
- Синхронізація власних даних гравців.
|
||||
|
||||
### Утиліти
|
||||
|
||||
- Бекпорт `MemoryUtil` та `MemoryStack` у стилі LWJGL3 в пакеті `bytebuf`.
|
||||
- 32- та 64-бітне хешування FNV-1a.
|
||||
- Допоміжні класи для роботи з математикою, NBT, JSON, файлами, напрямками та відстанями.
|
||||
- Типи кольорів для RGB та HSV.
|
||||
- Ітератори та трансформації 3D-геометрії.
|
||||
- Допоміжні класи для провайдерів можливостей.
|
||||
- Синхронізовані прив’язки клавіш.
|
||||
- Допоміжні класи для роботи з ASM та байт-кодом.
|
||||
- Перевірка сумісності з модами (Baubles, FalseTweaks, NEI).
|
||||
- Тіньове підключення FastUtil через https://github.com/GTNewHorizons/GTNHExtLib
|
||||
|
||||
## Подяки
|
||||
|
||||
Налаштування: Оригінальний код від FalsePattern, що розповсюджується за ліцензією LGPL-3.0 у [FalsePatternLib](https://github.com/FalsePattern/FalsePatternLib/tree/master/src/main/java/com/falsepattern/lib/config)
|
||||
@@ -1,5 +1,7 @@
|
||||
# Model API
|
||||
|
||||
🌐 **Languages:** [English](models.md) | [Українська](models_uk.md)
|
||||
|
||||
In general, it is designed to mimic the latest version.
|
||||
|
||||
### Intentional deviations
|
||||
|
||||
+174
@@ -0,0 +1,174 @@
|
||||
# Model API
|
||||
|
||||
🌐 **Мови:** [English](models.md) | [Українська](models_uk.md)
|
||||
|
||||
Загалом цей API розроблений так, щоб імітувати поведінку новіших версій Minecraft.
|
||||
|
||||
### Свідомі відхилення
|
||||
Наразі відсутні.
|
||||
|
||||
### Колишні відхилення
|
||||
Посилання на текстури більше не вважаються прив’язаними до розташувань 1.7.10.
|
||||
Замість цього вони обробляються з assets/namespace/textures, як у сучасних версіях.
|
||||
Це також означає, що тепер ви можете використовувати будь-яку текстуру у своєму ISBRH,
|
||||
і GTNHLib впровадить її в атлас блоків. Будь ласка, використовуйте цю можливість відповідально.
|
||||
|
||||
Ресурспаки тепер можуть замінювати більшість блоків, аналогічно до сучасних версій.
|
||||
*Зверніть увагу:* це працює насамперед для блоків із ISBRH — якщо для блоку
|
||||
в коді зареєстровано TESR, це призведе до рендерингу *як* моделі,
|
||||
*так і* TESR.
|
||||
|
||||
## Приклади
|
||||
### BlockColor
|
||||
Використовуйте для застосування кольору до `TintIndex`.
|
||||
<p>
|
||||
Приклад: Використання реєстрації BlockColor
|
||||
|
||||
<pre>
|
||||
BlockColor.registerBlockColors(new IBlockColor() {
|
||||
|
||||
@Override
|
||||
public int colorMultiplier(IBlockAccess world, int x, int y, int z, int tintIndex) {
|
||||
// Повертає червоний колір для основного шару, зелений — для додаткового
|
||||
return tintIndex == 0 ? 0xFF0000 : 0x00FF00;
|
||||
}
|
||||
|
||||
@Override
|
||||
public int colorMultiplier(ItemStack stack, int tintIndex) {
|
||||
// Повертає синій колір для основного шару, жовтий — для додаткового
|
||||
return tintIndex == 0 ? 0x0000FF : 0xFFFF00;
|
||||
}
|
||||
}, ModBlocks.MY_CUSTOM_BLOCK);
|
||||
</pre>
|
||||
|
||||
Приклад: Реалізація `IBlockColor` безпосередньо у класі блоку
|
||||
<pre>
|
||||
public class BlockTestTint extends Block implements IBlockColor {
|
||||
|
||||
public BlockTestTint() {
|
||||
super(Material.wood);
|
||||
}
|
||||
|
||||
@Override
|
||||
public int colorMultiplier(IBlockAccess world, int x, int y, int z, int tintIndex) {
|
||||
return switch(tintIndex) {
|
||||
case 0 -> 0xFF0000; // червоний
|
||||
case 1 -> 0x00FF00; // зелений
|
||||
case 2 -> 0x0000FF; // синій
|
||||
case 3 -> 0xFFFF00; // жовтий
|
||||
case 4 -> 0xFF00FF; // пурпуровий
|
||||
case 5 -> 0x00FFFF; // блакитний
|
||||
default -> 0xFFFFFF; // білий
|
||||
};
|
||||
}
|
||||
|
||||
@Override
|
||||
public int colorMultiplier(ItemStack stack, int tintIndex) {
|
||||
return colorMultiplier(null, 0, 0, 0, tintIndex);
|
||||
}
|
||||
}
|
||||
</pre>
|
||||
|
||||
### BlockState API
|
||||
|
||||
Замість використання 4-бітових метаданих, вибір моделі можна визначити на основі повних даних про стан блоку за допомогою зареєстрованого `BlockProperty`.
|
||||
|
||||
Це дозволяє:
|
||||
- Необмежену кількість логічних станів (без обмеження в 16 значень метаданих);
|
||||
- Варіанти моделей на основі даних `TileEntity`;
|
||||
- Визначення стану з урахуванням `ItemStack`;
|
||||
- Динамічну поведінку рендерингу.
|
||||
|
||||
Визначення BlockState працює у три кроки:
|
||||
1. `BlockProperty` реєструється для блоку (і опціонально для його предмета).
|
||||
2. Властивість надає значення з:
|
||||
- Світу + `TileEntity`
|
||||
- `ItemStack`
|
||||
3. Завантажувач `JsonModel` визначає варіанти моделей, використовуючи ці значення властивостей.
|
||||
|
||||
#### 1. Створення BlockProperty
|
||||
|
||||
Приклад: Властивість напрямку, яка базується на `TileEntity`.
|
||||
|
||||
<pre>
|
||||
DirectionBlockProperty property = new DirectionBlockProperty() {
|
||||
|
||||
@Override
|
||||
public String getName() {
|
||||
return "facing";
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean hasTrait(BlockPropertyTrait trait) {
|
||||
return switch (trait) {
|
||||
case SupportsWorld, WorldMutable, StackMutable, SupportsStacks -> true;
|
||||
default -> false;
|
||||
};
|
||||
}
|
||||
|
||||
@Override
|
||||
public ForgeDirection getValue(IBlockAccess world, int x, int y, int z) {
|
||||
TileEntity te = world.getTileEntity(x, y, z);
|
||||
if (te instanceof TileTestTintMul tile) {
|
||||
return tile.getFacing();
|
||||
}
|
||||
return ForgeDirection.NORTH;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void setValue(World world, int x, int y, int z, ForgeDirection value) {
|
||||
TileEntity te = world.getTileEntity(x, y, z);
|
||||
if (te instanceof TileTestTintMul tile) {
|
||||
tile.setFacing(value);
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public ForgeDirection getValue(ItemStack stack) {
|
||||
return ForgeDirection.NORTH;
|
||||
}
|
||||
};
|
||||
</pre>
|
||||
|
||||
#### 2. Реєстрація властивості
|
||||
|
||||
<pre>
|
||||
BlockPropertyRegistry.registerProperty(block, property);
|
||||
BlockPropertyRegistry.registerProperty(Item.getItemFromBlock(block), property);
|
||||
</pre>
|
||||
Ви повинні зареєструвати властивість:
|
||||
- Для блоку (стан у світі);
|
||||
- Для предмета (відображення в інвентарі).
|
||||
|
||||
#### 3. Визначення JSON-файлу blockstate
|
||||
|
||||
Приклад:
|
||||
<pre>
|
||||
{
|
||||
"variants": {
|
||||
"facing=north": { "model": "modid:block/machine_north" },
|
||||
"facing=south": { "model": "modid:block/machine_south" },
|
||||
"facing=west": { "model": "modid:block/machine_west" },
|
||||
"facing=east": { "model": "modid:block/machine_east" }
|
||||
}
|
||||
}
|
||||
</pre>
|
||||
|
||||
Завантажувач виконає такі дії:
|
||||
- Надішле запит до `property.getValue(...)`;
|
||||
- Сформує рядок стану, наприклад: `facing=north`;
|
||||
- Визначить відповідний варіант моделі.
|
||||
|
||||
#### Підтримувані атрибути
|
||||
`BlockPropertyTrait` керує тим, де саме працює властивість:
|
||||
- `SupportsWorld` → використовується під час рендерингу у світі;
|
||||
- `SupportsStacks` → використовується під час рендерингу предмета в інвентарі;
|
||||
- `WorldMutable` → значення можна змінювати у світі;
|
||||
- `StackMutable` → значення можна змінювати в ItemStack.
|
||||
|
||||
Реалізовуйте лише ті атрибути, які вам необхідні.
|
||||
|
||||
### Заплановано
|
||||
- Додавання м’якого затінення до ModelISBRH.
|
||||
- Додавання відсікання граней для моделей.
|
||||
- Реалізація фіксації UV-координат.
|
||||
@@ -0,0 +1,295 @@
|
||||
# Тестові блоки
|
||||
tile.model_test.name=Тестовий блок
|
||||
tile.model_test_tint.name=Тестовий блок (Відтінок)
|
||||
tile.model_test_tint_mul.name=Тестовий блок (Множник відтінку)
|
||||
tile.model_test_lectern.name=Тестовий блок аналоя
|
||||
tile.rng_test.name=Тестовий блок RNG
|
||||
tile.weighted_rng_test.name=Тестовий блок зваженого RNG
|
||||
|
||||
# Налаштування
|
||||
fml.configgui.tooltip.default=[типово: %s]
|
||||
fml.configgui.tooltip.defaultNumeric=[діапазон: %2$s ~ %3$s, типово: %1$s]
|
||||
|
||||
# Перенесено з WAWLA (What Are We Looking At)
|
||||
# Професії селян
|
||||
description.villager.profession.farmer=Фермер
|
||||
description.villager.profession.librarian=Бібліотекар
|
||||
description.villager.profession.priest=Церковник
|
||||
description.villager.profession.blacksmith=Коваль
|
||||
description.villager.profession.butcher=М’ясник
|
||||
description.villager.profession.zombie=Зомбі
|
||||
description.villager.profession.witch=Відьма
|
||||
description.villager.profession.misingno=Звичайний
|
||||
description.villager.profession.openblocks.king-ish=Королеподібний
|
||||
description.villager.profession.tinker.villagertools=Майстер
|
||||
description.villager.profession.extvil.Miller=Мельник
|
||||
description.villager.profession.extvil.Fisher=Рибалка
|
||||
description.villager.profession.extvil.Baker=Пекар
|
||||
description.villager.profession.extvil.Miner=Шахтар
|
||||
description.villager.profession.extvil.Scientist=Вчений
|
||||
description.villager.profession.extvillom.Tanner=Чинбар
|
||||
description.villager.profession.forestry.beekeeper=Бджоляр
|
||||
description.villager.profession.forestry.lumberjack=Лісоруб
|
||||
description.villager.profession.mystcraft.archivist=Архівіст
|
||||
description.villager.profession.bcaddons.Engineer=Інженер
|
||||
description.villager.profession.thaumcraft.wizard=Чаклун
|
||||
description.villager.profession.thaumcraft.moneychanger=Торговець
|
||||
description.villager.profession.compactmachines.villager=Компактний механік
|
||||
description.villager.profession.railcraft.trackman=Залізничник
|
||||
description.villager.profession.pneumaticcraft.VillagerMechanic=Механік
|
||||
description.villager.profession.witchery.apothecary=Аптекар
|
||||
description.villager.profession.minefactoryreloaded.zoologist=Зоолог
|
||||
description.villager.profession.is_mtc.card_master=Майстер карт
|
||||
description.villager.profession.gravestone.undertaker=Гробар
|
||||
description.villager.profession.gcewing_sg.tokra=Ток’ра
|
||||
description.villager.profession.steamcraft.villager=Паровий майстер
|
||||
description.villager.profession.fantastic.fantastic_fisherman=Дивовижний рибалка
|
||||
description.villager.profession.defeatedcrow.villager_cafe=Офіціант
|
||||
description.villager.profession.defeatedcrow.villager_yome=Йоме
|
||||
description.villager.profession.grccellar.brewer=Пивовар
|
||||
description.villager.profession.peripheralsplusplus.CCVillager=Комп’ютерний технік
|
||||
description.villager.profession.evilcraft.werewolfVillager=Перевертень
|
||||
description.villager.profession.redgear_brewcraft.villagerwitch=Відьма
|
||||
description.villager.profession.redgear_brewcraft.villagerwarlock=Чорнокнижник
|
||||
description.villager.profession.fossil.Archaeologist=Археолог
|
||||
description.villager.profession.pennyarcade.CoinMerchant=Торговець монетами
|
||||
description.villager.profession.psychedelicraft.villagerDealer=Наркоторговець
|
||||
description.villager.profession.jukeboxreloaded.villager=Торговець платівками
|
||||
description.villager.profession.minecraft.etymologist=Етимолог
|
||||
description.villager.profession.tofucraft.tofucook=Шеф-кухар тофу
|
||||
description.villager.profession.jewelrycraft.jeweler=Ювелір
|
||||
description.villager.profession.taverns.barwench=Шинкарка
|
||||
description.villager.profession.taverns.village_shepherdess=Пастушка
|
||||
description.villager.profession.taverns.village_hostler=Конюх
|
||||
description.villager.profession.taverns.village_baker=Пекар
|
||||
description.villager.profession.tynkyn.jx_villager_chef=Шеф-кухар
|
||||
description.villager.profession.tynkyn.jx_villager_recycle=Спеціаліст із вторсировини
|
||||
description.villager.profession.tynkyn.jx_villager_botanist=Ботанік
|
||||
description.villager.profession.lozmod.villager_beedle=Бідл
|
||||
description.villager.profession.lozmod.villager_beedle_special=Бідл
|
||||
description.villager.profession.minecraft.farmer=Фермер
|
||||
description.villager.profession.savemoney.insurer=Страховик
|
||||
description.villager.profession.gvcguns.gvcVillager=Торговець зброєю
|
||||
description.villager.profession.actuallyadditions.jamVillager=Торговець джемом
|
||||
description.villager.profession.jewelrycraft2.jeweler=Ювелір
|
||||
description.villager.profession.pokecube_adventures.cubesalesman=Продавець покекубів
|
||||
description.villager.profession.terraarts.YE3TE2y=YE3TE2y
|
||||
description.villager.profession.xw.smithy3=Коваль
|
||||
description.villager.profession.xw.hunter_v1=Мисливець
|
||||
description.villager.profession.diversity.warrior=Воїн
|
||||
description.villager.profession.diversity.priest=Священник
|
||||
description.villager.profession.diversity.butcher=М’ясник
|
||||
description.villager.profession.diversity.chief=Вождь
|
||||
description.villager.profession.diversity.breeder=Селекціонер
|
||||
description.villager.profession.diversity.guru=Гуру
|
||||
description.villager.profession.diversity.farmer=Фермер
|
||||
description.villager.profession.jbrobot.jbvillagerblock=Блоки
|
||||
description.villager.profession.jbrobot.jbvillageritem=Предмети
|
||||
description.villager.profession.jbrobot.jbvillagermodel=Моделі
|
||||
description.villager.profession.jbrobot.jbvillagermotion=Рух
|
||||
description.villager.profession.jbrobot.jbvillagercarving=Різьблення
|
||||
description.villager.profession.wa.villager=Селянин
|
||||
description.villager.profession.wa.swordsmith=Майстер мечів
|
||||
description.villager.profession.wa.teaMaster=Чайний майстер
|
||||
description.villager.profession.wa.priest=Священник
|
||||
description.villager.profession.rftools.rftoolsvillager=Інженер RFTools
|
||||
description.villager.profession.forbidden.heretic=Єретик
|
||||
description.villager.profession.agricraft.villager=Фермер AgriCraft
|
||||
|
||||
# Конфігурація форматування чисел
|
||||
gtnhlib.config.number_formatting.numberFormatLocale=Локаль форматування чисел
|
||||
gtnhlib.config.number_formatting.numberFormatLocale.tooltip=Оберіть локаль для форматування чисел. «Системна за замовчуванням» використовує формат мови системи.
|
||||
# Оновлювач пакетів ресурсів
|
||||
# Сповіщення про оновлення пакетів ресурсів
|
||||
gtnhlib.chat.rpupdater.update_available=§3Доступне нове оновлення для §f%s: v%s §7(у вас v%s)§3.
|
||||
gtnhlib.chat.rpupdater.click_here=§6Натисніть сюди
|
||||
gtnhlib.chat.rpupdater.open_release= §3, щоб відкрити сторінку релізу.
|
||||
gtnhlib.chat.rpupdater.line_mismatch=§f%s §3призначений для GTNH §f%s§3, але ви граєте на §fGTNH %s§3.
|
||||
gtnhlib.chat.rpupdater.checking=§3Перевірка оновлень пакетів ресурсів...
|
||||
gtnhlib.chat.rpupdater.no_updates=§3Оновлень для активних пакетів ресурсів не знайдено.
|
||||
gtnhlib.chat.rpupdater.already_running=§4Перевірка оновлень вже триває.
|
||||
gtnhlib.chat.rpupdater.cooldown=§4Перевірку оновлень призупинено через нещодавній збій. Спробуйте пізніше або скористайтеся §f%s§4.
|
||||
gtnhlib.chat.rpupdater.disabled=§4Перевірку оновлень пакетів ресурсів вимкнено у конфігурації. Увімкніть її в §fконфігурації GTNH Lib§4 або запустіть з аргументом §f%s§4.
|
||||
gtnhlib.chat.rpupdater.manual_cooldown=§4Будь ласка, зачекайте трохи перед повторним виконанням цієї команди.
|
||||
gtnhlib.chat.rpupdater.commands=§2Команди оновлювача пакетів ресурсів:
|
||||
gtnhlib.chat.rpupdater.list.header=§2Активні пакети ресурсів (§f%s§2):
|
||||
gtnhlib.chat.rpupdater.list.item.updater=§3%s §2(оновлювач: §7%s v%s, %s§2)
|
||||
gtnhlib.chat.rpupdater.list.item.none=%s §4(без оновлювача)
|
||||
gtnhlib.chat.rpupdater.status.header=§2Статус оновлювача пакетів ресурсів:
|
||||
gtnhlib.chat.rpupdater.status.running=Виконується: §7%s
|
||||
gtnhlib.chat.rpupdater.status.last_check=Остання перевірка: §7%s
|
||||
gtnhlib.chat.rpupdater.status.never=§7ніколи
|
||||
gtnhlib.chat.rpupdater.status.cooldown_failure=Призупинення через збій: §7%s
|
||||
gtnhlib.chat.rpupdater.status.cooldown_manual=Ручне призупинення: §7%s
|
||||
gtnhlib.chat.rpupdater.info.usage=Використання: §7%s
|
||||
gtnhlib.chat.rpupdater.info.not_found=Жоден активний пакет ресурсів не відповідає §7%s.
|
||||
gtnhlib.chat.rpupdater.info.ambiguous=Кілька пакетів ресурсів відповідають §7%s§f (§7%s§f). Уточніть запит.
|
||||
gtnhlib.chat.rpupdater.info.header=§2Інформація про пакет ресурсів §3%s§2:
|
||||
gtnhlib.chat.rpupdater.info.no_updater=Для цього пакета ресурсів не знайдено метаданих оновлювача.
|
||||
gtnhlib.chat.rpupdater.info.updater_name=Назва оновлювача: §7%s
|
||||
gtnhlib.chat.rpupdater.info.version=Версія: §7%s (GTNH %s)
|
||||
gtnhlib.chat.rpupdater.info.source=Джерело: §7%s/%s
|
||||
|
||||
# Команди GTNHTeams
|
||||
gtnhlib.chat.teams.error.name_in_use=Ця назва команди вже зайнята або недійсна.
|
||||
gtnhlib.chat.teams.error.not_in_team=Ви не перебуваєте в команді.
|
||||
gtnhlib.chat.teams.error.not_online=Гравець "%s" не в мережі.
|
||||
gtnhlib.chat.teams.error.no_invite=У вас немає очікуваних запрошень до команди.
|
||||
gtnhlib.chat.teams.error.team_not_found=Команди "%s" не існує.
|
||||
gtnhlib.chat.teams.error.no_invite_specific=Вас не запрошували до команди "%s".
|
||||
gtnhlib.chat.teams.error.disambiguate_invite=Вас запросили до кількох команд. Використайте %s accept <Назва команди> або %1$s deny <Назва команди>.
|
||||
gtnhlib.chat.teams.error.other_not_in_team=%s не перебуває у вашій команді.
|
||||
gtnhlib.chat.teams.error.invite_teammate=%s вже у вашій команді.
|
||||
gtnhlib.chat.teams.error.invite_self=Ви не можете запросити самого себе.
|
||||
gtnhlib.chat.teams.error.not_owner_rename=Лише власники команди можуть змінювати її назву.
|
||||
gtnhlib.chat.teams.error.not_owner_promote=Лише власники команди можуть підвищувати учасників.
|
||||
gtnhlib.chat.teams.error.not_owner_demote=Лише власники команди можуть понижувати учасників.
|
||||
gtnhlib.chat.teams.error.kick_not_allowed=Ви можете виганяти гравців лише як власник або якщо вони нижчі за вас за рангом.
|
||||
gtnhlib.chat.teams.error.cannot_kick_self=Ви не можете вигнати самого себе (у грі).
|
||||
gtnhlib.chat.teams.error.not_owner_merge_request=Лише власники команди можуть надсилати або скасовувати запити на об’єднання.
|
||||
gtnhlib.chat.teams.error.not_owner_merge_response=Лише власники команди можуть приймати або відхиляти запити на об’єднання.
|
||||
gtnhlib.chat.teams.error.not_owner_disband=Лише власники команди можуть розформувати свою команду.
|
||||
gtnhlib.chat.teams.error.not_officer_invite=Лише власники або офіцери команди можуть запрошувати гравців.
|
||||
gtnhlib.chat.teams.error.merge_self=Ваша команда не може об’єднатися сама з собою.
|
||||
gtnhlib.chat.teams.error.merge_already_requested=Ваша команда вже має очікуваний запит на об’єднання з %s.
|
||||
gtnhlib.chat.teams.error.no_such_merge_request=Запит на об’єднання від вашої команди до %s не знайдено.
|
||||
gtnhlib.chat.teams.error.no_merge_request=У вашої команди немає очікуваних запитів на об’єднання.
|
||||
gtnhlib.chat.teams.error.disambiguate_merge=У вашої команди є кілька очікуваних запитів на об’єднання. Використайте %s merge accept <Назва команди> або %1$s merge deny <Назва команди>.
|
||||
gtnhlib.chat.teams.error.no_merge_request_specific=Ваша команда не отримувала запиту на об’єднання від "%s".
|
||||
gtnhlib.chat.teams.error.last_member_leave=Ви не можете покинути команду, якщо ви її єдиний учасник.
|
||||
gtnhlib.chat.teams.error.last_owner_leave=Ви не можете покинути команду як останній власник, поки в ній є інші учасники. Спочатку підвищте іншого учасника.
|
||||
gtnhlib.chat.teams.error.last_owner_demote=Ви не можете понизити себе, якщо ви єдиний власник своєї команди.
|
||||
gtnhlib.chat.teams.error.last_owner_disband=Ви не можете розформувати команду, якщо ви її єдиний учасник.
|
||||
gtnhlib.chat.teams.error.demote_member=%s вже має найнижчий ранг (учасник).
|
||||
gtnhlib.chat.teams.error.promote_owner=%s вже є власником.
|
||||
gtnhlib.chat.teams.error.not_player=Цю команду може використовувати лише гравець.
|
||||
gtnhlib.chat.teams.message.usage=Команди %s: help, gui, info, rename, invite, accept, deny, leave, promote, demote, kick, disband, merge <request|cancel|accept|deny>
|
||||
gtnhlib.chat.teams.message.renamed_team=Вашу команду було перейменовано на %s.
|
||||
gtnhlib.chat.teams.message.admin_renamed_team=Вашу команду було примусово перейменовано на %s.
|
||||
gtnhlib.chat.teams.message.joined_team=Ви приєдналися до %s.
|
||||
gtnhlib.chat.teams.message.other_joined_team=%s приєднався(-лася) до вашої команди.
|
||||
gtnhlib.chat.teams.message.left_team=Ви покинули %s.
|
||||
gtnhlib.chat.teams.message.other_left_team=%s покинув(-ла) вашу команду.
|
||||
gtnhlib.chat.teams.message.kicked_from_team=Вас було вигнано з %s.
|
||||
gtnhlib.chat.teams.message.admin_kicked_from_team=Вас було примусово вигнано з %s.
|
||||
gtnhlib.chat.teams.message.other_kicked_from_team=%s було вигнано з вашої команди.
|
||||
gtnhlib.chat.teams.message.admin_other_kicked_from_team=%s було примусово вигнано з вашої команди.
|
||||
gtnhlib.chat.teams.message.sent_invite=Запрошено %s до вашої команди.
|
||||
gtnhlib.chat.teams.message.received_invite=%s запрошує вас приєднатися до %s. Використайте %s, щоб прийняти, або %s, щоб відхилити.
|
||||
gtnhlib.chat.teams.message.declined_invite=Відхилено запрошення до %s.
|
||||
gtnhlib.chat.teams.message.promoted_to_owner=%s тепер є власником команди.
|
||||
gtnhlib.chat.teams.message.promoted_to_officer=%s тепер є офіцером команди.
|
||||
gtnhlib.chat.teams.message.demoted_to_officer=%s більше не є власником команди.
|
||||
gtnhlib.chat.teams.message.demoted_to_member=%s більше не є офіцером команди.
|
||||
gtnhlib.chat.teams.message.merge_request_sent=Надіслано запит на об’єднання до %s.
|
||||
gtnhlib.chat.teams.message.merge_request_cancelled=Скасовано запит на об’єднання до %s.
|
||||
gtnhlib.chat.teams.message.merge_request_received=%s пропонує об’єднати свою команду з вашою. Прийняття перенесе всіх її учасників та дані до вашої команди. Це незворотна дія! Використайте %s, щоб прийняти, або %s, щоб відхилити.
|
||||
gtnhlib.chat.teams.message.merge_complete=%s об’єднано з %s. Всіх учасників та дані було перенесено.
|
||||
gtnhlib.chat.teams.message.merge_denied=Відхилено запит на об’єднання від %s.
|
||||
gtnhlib.chat.teams.message.team_name_too_long=Назва команди занадто довга!
|
||||
gtnhlib.chat.teams.message.team_disbanded=Вашу команду %s було розформовано.
|
||||
gtnhlib.chat.teams.info.owners=Власники: %s
|
||||
gtnhlib.chat.teams.info.officers=Офіцери: %s
|
||||
gtnhlib.chat.teams.info.members=Учасники: %s
|
||||
gtnhlib.chat.teams.help.1=Сторінка довідки %s:
|
||||
gtnhlib.chat.teams.help.2=%s info — вивести список учасників вашої поточної команди.
|
||||
gtnhlib.chat.teams.help.3=%s invite <гравець> — [Офіцер] запросити гравця в мережі до вашої команди.
|
||||
gtnhlib.chat.teams.help.4=%s accept [команда] — прийняти очікуване запрошення до команди.
|
||||
gtnhlib.chat.teams.help.5=%s deny [команда] — відхилити очікуване запрошення до команди.
|
||||
gtnhlib.chat.teams.help.6=%s leave — покинути поточну команду та створити соло-команду.
|
||||
gtnhlib.chat.teams.help.7=%s rename <нова назва> — [Власник] змінити назву вашої команди.
|
||||
gtnhlib.chat.teams.help.8=%s promote <гравець> — [Власник] підвищити учасника до офіцера або офіцера до власника.
|
||||
gtnhlib.chat.teams.help.9=%s demote <гравець> — [Власник] понизити власника до офіцера або офіцера до учасника.
|
||||
gtnhlib.chat.teams.help.10=%s kick <гравець> — [Вищий ранг] вигнати гравця з команди.
|
||||
gtnhlib.chat.teams.help.11=%s merge request <команда> — [Власник] подати запит на об’єднання вашої команди з іншою.
|
||||
gtnhlib.chat.teams.help.12=%s merge accept [команда] — [Власник] прийняти очікуваний запит на об’єднання.
|
||||
gtnhlib.chat.teams.help.13=%s merge deny [команда] — [Власник] відхилити очікуваний запит на об’єднання.
|
||||
gtnhlib.chat.teams.help.14=%s disband — [Власник] розформувати вашу команду.
|
||||
|
||||
|
||||
# Адміністративні команди GTNHTeams
|
||||
gtnhlib.chat.teams.admin.error.team_not_found=Команду з назвою %s не знайдено.
|
||||
gtnhlib.chat.teams.admin.error.cannot_disband_solo_team=Неможливо розформувати команду, в якій лише один гравець.
|
||||
gtnhlib.chat.teams.admin.error.name_in_use=Назва %s вже використовується.
|
||||
gtnhlib.chat.teams.admin.error.player_not_in_team=%s не перебуває в команді %s.
|
||||
gtnhlib.chat.teams.admin.error.demote_last_owner=Неможливо примусово понизити %s, поки він є останнім власником команди %s.
|
||||
gtnhlib.chat.teams.admin.error.kick_last_owner=%s є останнім власником своєї команди, тому його не можна вигнати.
|
||||
gtnhlib.chat.teams.admin.message.usage=Адмін-команди %s: help, info, rename, promote, demote, kick, merge, disband
|
||||
gtnhlib.chat.teams.admin.message.renamed=Команду %s було примусово перейменовано на %s.
|
||||
gtnhlib.chat.teams.admin.message.merged=Команду %s було примусово об’єднано з %s.
|
||||
gtnhlib.chat.teams.admin.message.merge_teams_same=Неможливо об’єднати команду саму з собою!
|
||||
gtnhlib.chat.teams.admin.message.team_disbanded=%s було примусово розформовано адміністратором.
|
||||
gtnhlib.chat.teams.admin.message.disbanded=%s було примусово розформовано.
|
||||
gtnhlib.chat.teams.admin.message.promoted_to_owner=%s було примусово підвищено до власника %s.
|
||||
gtnhlib.chat.teams.admin.message.promoted_to_officer=%s було примусово підвищено до офіцера %s.
|
||||
gtnhlib.chat.teams.admin.message.demoted_to_officer=%s було примусово понижено до офіцера %s.
|
||||
gtnhlib.chat.teams.admin.message.demoted_to_member=%s було примусово понижено до учасника %s.
|
||||
gtnhlib.chat.teams.admin.message.kicked=%s було примусово вигнано з %s.
|
||||
gtnhlib.chat.teams.admin.help.1=Сторінка довідки адміна %s:
|
||||
gtnhlib.chat.teams.admin.help.2=%s info <команда> — вивести список учасників вказаної команди.
|
||||
gtnhlib.chat.teams.admin.help.3=%s rename <команда> <нова назва> — примусово перейменувати вказану команду.
|
||||
gtnhlib.chat.teams.admin.help.4=%s promote <команда> <гравець> — примусово підвищити вказаного гравця в команді.
|
||||
gtnhlib.chat.teams.admin.help.5=%s demote <команда> <гравець> — примусово понизити вказаного гравця в команді.
|
||||
gtnhlib.chat.teams.admin.help.6=%s kick <команда> <гравець> — примусово вигнати вказаного гравця з команди.
|
||||
gtnhlib.chat.teams.admin.help.7=%s merge <початкова команда> <цільова команда> — примусово об’єднати початкову команду з цільовою, перенісши їхніх учасників та дані.
|
||||
gtnhlib.chat.teams.admin.help.8=%s disband <команда> — примусово розформувати команду. Гравців буде негайно переведено в соло-команди, а дані команди будуть назавжди втрачені.
|
||||
|
||||
# Команди інтеграції GTNHTeams з MUI2
|
||||
gtnhlib.chat.teams.error.mui2_not_loaded=Для графічного інтерфейсу команд потрібен мод MUI2.
|
||||
gtnhlib.chat.teams.help.gui=/gtnhteam gui — показати інтерфейс команд.
|
||||
gtnhlib.gui.teams.missing_team_name=Невизначена команда
|
||||
gtnhlib.gui.teams.edit_team_name=Змінити назву команди
|
||||
gtnhlib.gui.teams.promote_member=Підвищити
|
||||
gtnhlib.gui.teams.confirm_promote_member=Підвищити %s?
|
||||
gtnhlib.gui.teams.admin.confirm_promote_member=[Адмін] Примусово підвищити %s?
|
||||
gtnhlib.gui.teams.demote_member=Понизити
|
||||
gtnhlib.gui.teams.confirm_demote_member=Понизити %s?
|
||||
gtnhlib.gui.teams.admin.confirm_demote_member=[Адмін] Примусово понизити %s?
|
||||
gtnhlib.gui.teams.kick_member=Вигнати
|
||||
gtnhlib.gui.teams.confirm_kick_member=Вигнати учасника %s?
|
||||
gtnhlib.gui.teams.admin.confirm_kick_member=[Адмін] Примусово вигнати учасника %s?
|
||||
gtnhlib.gui.teams.view_member_invites=Запрошення
|
||||
gtnhlib.gui.teams.invite_member=Запросити учасника
|
||||
gtnhlib.gui.teams.cancel_invite_member=Скасувати запрошення учасника
|
||||
gtnhlib.gui.teams.merge_team=Об’єднати команди
|
||||
gtnhlib.gui.teams.disband_team=Розформувати команду
|
||||
gtnhlib.gui.teams.confirm_disband_team=Ви впевнені, що хочете розформувати команду?
|
||||
gtnhlib.gui.teams.leave_team=Покинути команду
|
||||
gtnhlib.gui.teams.confirm_leave_team=Ви впевнені, що хочете покинути команду?
|
||||
gtnhlib.gui.teams.view_all_teams=Показати всі команди
|
||||
gtnhlib.gui.teams.view_team_data=Дані команди
|
||||
gtnhlib.gui.teams.confirm_invite_player=Запросити %s до вашої команди?
|
||||
gtnhlib.gui.teams.confirm_cancel_invite_player=Скасувати запрошення для %s?
|
||||
gtnhlib.gui.teams.accept_team_invitation=Прийняти запрошення
|
||||
gtnhlib.gui.teams.confirm_accept_team_invitation=Приєднатися до %s?
|
||||
gtnhlib.gui.teams.deny_team_invitation=Відхилити запрошення
|
||||
gtnhlib.gui.teams.confirm_deny_team_invitation=Відхилити запрошення приєднатися до %s?
|
||||
gtnhlib.gui.teams.request_merge=Запросити об’єднання
|
||||
gtnhlib.gui.teams.confirm_merge_request=Надіслати запит на об’єднання вашої команди з %s?
|
||||
gtnhlib.gui.teams.cancel_merge_request=Скасувати запит на об’єднання
|
||||
gtnhlib.gui.teams.confirm_cancel_merge_request=Скасувати запит на об’єднання з %s?
|
||||
gtnhlib.gui.teams.accept_merge_request=Прийняти
|
||||
gtnhlib.gui.teams.confirm_accept_merge_request=Об’єднати %s з вашою командою?
|
||||
gtnhlib.gui.teams.deny_merge_request=Відхилити
|
||||
gtnhlib.gui.teams.confirm_deny_merge_request=Відхилити об’єднання %s з вашою командою?
|
||||
gtnhlib.gui.teams.confirm=Прийняти
|
||||
gtnhlib.gui.teams.cancel=Скасувати
|
||||
gtnhlib.gui.teams.select_screen.invalid=Недійсний список
|
||||
gtnhlib.gui.teams.select_screen.team_list=Усі команди
|
||||
gtnhlib.gui.teams.select_screen.player_list=Список гравців
|
||||
gtnhlib.gui.teams.select_screen.invite=Запросити гравців
|
||||
gtnhlib.gui.teams.select_screen.get_invites=Запрошення до команд
|
||||
gtnhlib.gui.teams.select_screen.team_merge=Об’єднати команду з...
|
||||
gtnhlib.gui.teams.select_screen.get_team_merge=Прийняти запити на об’єднання команд
|
||||
gtnhlib.gui.teams.admin.force_disband_team=Примусово розформувати
|
||||
gtnhlib.gui.teams.admin.confirm_force_disband_team=Примусово розформувати команду %s?
|
||||
gtnhlib.gui.teams.admin.force_edit_team_name=Примусово змінити назву
|
||||
gtnhlib.gui.teams.admin.force_merge_into_team=Примусово об’єднати першу вибрану команду з цією
|
||||
gtnhlib.gui.teams.admin.force_merge_confirmation=Примусово об’єднати %s з %s? %s та всі її дані будуть видалені!
|
||||
|
||||
commands.title.cleared.single=Очищено заголовок для %s
|
||||
commands.title.reset.single=Скинуто налаштування заголовка для %s
|
||||
commands.title.show.title.single=Показано заголовок для %s
|
||||
commands.title.show.subtitle.single=Показано підзаголовок для %s
|
||||
commands.title.times.single=Змінено час відображення заголовка для %s
|
||||
commands.title.icon.single=Змінено іконку заголовка для %s
|
||||
Reference in new issue
Block a user