Skip to content

Commit 0dd7d2b

Browse files
committed
Merge remote-tracking branch 'origin/14.x-1.20.4' into 15.x-1.20.5
# Conflicts: # gradle.properties # gradle/wrapper/gradle-wrapper.properties
2 parents 15a46dc + 106896b commit 0dd7d2b

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

44 files changed

+2171
-1210
lines changed

fabric/build.gradle

+4
Original file line numberDiff line numberDiff line change
@@ -106,6 +106,10 @@ publishing {
106106
builtBy remapSourcesJarTask
107107
classifier "sources"
108108
}
109+
110+
// Hack to inherit the dependencies without inheriting the artifacts
111+
publication.setArtifacts(publication.artifacts)
112+
from components.java
109113
}
110114
}
111115
}

forge/build.gradle

+4
Original file line numberDiff line numberDiff line change
@@ -215,6 +215,10 @@ publishing {
215215
builtBy remapSrgSourcesJar
216216
classifier "sources"
217217
}
218+
219+
// Hack to inherit the dependencies without inheriting the artifacts
220+
publication.setArtifacts(publication.artifacts)
221+
from components.java
218222
}
219223
}
220224
}

forge/src/main/java/me/shedaniel/rei/forge/PrimitivePlatformAdapterImpl.java

-4
Original file line numberDiff line numberDiff line change
@@ -23,7 +23,6 @@
2323

2424
package me.shedaniel.rei.forge;
2525

26-
import me.shedaniel.rei.RoughlyEnoughItemsState;
2726
import me.shedaniel.rei.impl.init.PrimitivePlatformAdapter;
2827
import net.minecraftforge.api.distmarker.Dist;
2928
import net.minecraftforge.fml.ModList;
@@ -39,9 +38,6 @@ public boolean isClient() {
3938

4039
@Override
4140
public void checkMods() {
42-
if (ModList.get().isLoaded("moreoverlays")) {
43-
RoughlyEnoughItemsState.error("REI is not compatible with MoreOverlays, and actually contains Builtin Inventory Highlighting, other features can be installed via different mods!");
44-
}
4541
}
4642

4743
@Override

gradle.properties

+1-1
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@ unstable=false
44
supported_version=1.20.5/6
55
minecraft_version=1.20.6
66
platforms=fabric,neoforge
7-
forge_version=49.0.3
7+
forge_version=49.1.10
88
neoforge_version=20.6.119
99
neoforge_pr=
1010
fabricloader_version=0.16.0

gradle/wrapper/gradle-wrapper.properties

+1-1
Original file line numberDiff line numberDiff line change
@@ -3,4 +3,4 @@ distributionBase=GRADLE_USER_HOME
33
distributionPath=wrapper/dists
44
zipStoreBase=GRADLE_USER_HOME
55
zipStorePath=wrapper/dists
6-
distributionUrl=https\://services.gradle.org/distributions/gradle-8.8-all.zip
6+
distributionUrl=https\://services.gradle.org/distributions/gradle-8.10.1-bin.zip

neoforge/build.gradle

+4
Original file line numberDiff line numberDiff line change
@@ -152,6 +152,10 @@ publishing {
152152
builtBy remapMojangSourcesJar
153153
classifier "sources"
154154
}
155+
156+
// Hack to inherit the dependencies without inheriting the artifacts
157+
publication.setArtifacts(publication.artifacts)
158+
from components.java
155159
}
156160
}
157161
}

neoforge/src/main/java/me/shedaniel/rei/forge/PrimitivePlatformAdapterImpl.java

-4
Original file line numberDiff line numberDiff line change
@@ -23,7 +23,6 @@
2323

2424
package me.shedaniel.rei.forge;
2525

26-
import me.shedaniel.rei.RoughlyEnoughItemsState;
2726
import me.shedaniel.rei.impl.init.PrimitivePlatformAdapter;
2827
import net.neoforged.api.distmarker.Dist;
2928
import net.neoforged.fml.ModList;
@@ -39,9 +38,6 @@ public boolean isClient() {
3938

4039
@Override
4140
public void checkMods() {
42-
if (ModList.get().isLoaded("moreoverlays")) {
43-
RoughlyEnoughItemsState.error("REI is not compatible with MoreOverlays, and actually contains Builtin Inventory Highlighting, other features can be installed via different mods!");
44-
}
4541
}
4642

4743
@Override

runtime/src/main/java/me/shedaniel/rei/impl/client/config/ConfigObjectImpl.java

+2
Original file line numberDiff line numberDiff line change
@@ -658,6 +658,8 @@ public static class Functionality {
658658
@Comment("Declares whether subsets is enabled.")
659659
public boolean isSubsetsEnabled = false;
660660
public boolean allowInventoryHighlighting = true;
661+
public double inventoryHighlightingDarkenOpacity = 0.85;
662+
public double inventoryHighlightingOpacity = 1.0;
661663
public ItemCheatingMode itemCheatingMode = ItemCheatingMode.REI_LIKE;
662664
}
663665

runtime/src/main/java/me/shedaniel/rei/impl/client/gui/config/REIConfigScreen.java

+8-2
Original file line numberDiff line numberDiff line change
@@ -82,6 +82,8 @@ public class REIConfigScreen extends Screen implements ConfigAccess {
8282
@Nullable
8383
private Menu menu;
8484
@Nullable
85+
private Widget menuWidget;
86+
@Nullable
8587
private CompositeOption<ModifierKeyCode> focusedKeycodeOption = null;
8688
private ModifierKeyCode partialKeycode = null;
8789

@@ -397,14 +399,18 @@ public boolean keyReleased(int keyCode, int scanCode, int modifiers) {
397399

398400
@Override
399401
public void openMenu(Menu menu) {
402+
if (this.menu != null) {
403+
this.widgets.remove(this.menuWidget);
404+
}
400405
this.menu = menu;
401-
this.widgets.add(menu);
406+
this.widgets.add(this.menuWidget = Widgets.withTranslate(menu, 0, 0, 300));
402407
}
403408

404409
@Override
405410
public void closeMenu() {
406-
this.widgets.remove(menu);
411+
this.widgets.remove(this.menuWidget);
407412
this.menu = null;
413+
this.menuWidget = null;
408414
}
409415

410416
@Override

runtime/src/main/java/me/shedaniel/rei/impl/client/gui/config/options/AllREIConfigCategories.java

+1
Original file line numberDiff line numberDiff line change
@@ -51,6 +51,7 @@ static OptionCategory make(String key) {
5151
OptionCategory ACCESSIBILITY = make("accessibility")
5252
.add(ACCESSIBILITY_DISPLAY)
5353
.add(ACCESSIBILITY_WIDGETS)
54+
.add(ACCESSIBILITY_INVENTORY_SEARCH)
5455
.add(ACCESSIBILITY_FEATURES);
5556
OptionCategory FILTERING = make("filtering")
5657
.add(FILTERING_FILTERING)

runtime/src/main/java/me/shedaniel/rei/impl/client/gui/config/options/AllREIConfigGroups.java

+5-2
Original file line numberDiff line numberDiff line change
@@ -68,10 +68,13 @@ static <T> OptionGroup make(String id) {
6868
OptionGroup ACCESSIBILITY_WIDGETS = make("accessibility.widgets")
6969
.add(SCROLLBAR_VISIBILITY)
7070
.add(CLICKABLE_RECIPE_ARROWS);
71+
OptionGroup ACCESSIBILITY_INVENTORY_SEARCH = make("accessibility.inventory_search")
72+
.add(INVENTORY_SEARCH_MODE)
73+
.add(INVENTORY_SEARCH_DARKEN_OPACITY)
74+
.add(INVENTORY_SEARCH_OPACITY);
7175
OptionGroup ACCESSIBILITY_FEATURES = make("accessibility.features")
7276
.add(VANILLA_RECIPE_BOOK)
73-
.add(STATUS_EFFECTS_LOCATION)
74-
.add(INVENTORY_SEARCH);
77+
.add(STATUS_EFFECTS_LOCATION);
7578
OptionGroup FILTERING_FILTERING = make("filtering.filtering")
7679
.add(CATEGORIES)
7780
.add(CUSTOMIZED_FILTERING);

runtime/src/main/java/me/shedaniel/rei/impl/client/gui/config/options/AllREIConfigOptions.java

+20-3
Original file line numberDiff line numberDiff line change
@@ -60,6 +60,15 @@ static <T> CompositeOption<T> make(String id, Function<ConfigObjectImpl, T> bind
6060
translatable("config.rei.options." + id + ".desc"), bind, save);
6161
}
6262

63+
static ComparableValue<Double>[] doubleRange(double start, double end, double step) {
64+
int length = (int) Math.ceil((end - start) / step + 1);
65+
ComparableValue<Double>[] result = new ComparableValue[length];
66+
for (int i = 0; i < length; i++) {
67+
result[i] = ComparableValue.ofDouble(Math.min(start + i * step, end));
68+
}
69+
return result;
70+
}
71+
6372
CompositeOption<AppearanceTheme> THEME = make("appearance.theme", i -> i.appearance.theme, (i, v) -> i.appearance.theme = v)
6473
.enumOptions();
6574
CompositeOption<RecipeBorderType> RECIPE_BORDER = make("appearance.recipe_border", i -> i.appearance.recipeBorder, (i, v) -> i.appearance.recipeBorder = v)
@@ -140,12 +149,18 @@ static <T> CompositeOption<T> make(String id, Function<ConfigObjectImpl, T> bind
140149
.ofBoolean(translatable("config.rei.value.accessibility.scrollbar_visibility.when_scrolling"), translatable("config.rei.value.accessibility.scrollbar_visibility.always"));
141150
CompositeOption<Boolean> CLICKABLE_RECIPE_ARROWS = make("accessibility.clickable_recipe_arrows", i -> i.advanced.miscellaneous.clickableRecipeArrows, (i, v) -> i.advanced.miscellaneous.clickableRecipeArrows = v)
142151
.enabledDisabled();
152+
CompositeOption<Boolean> INVENTORY_SEARCH_MODE = make("accessibility.inventory_search_mode", i -> i.functionality.allowInventoryHighlighting, (i, v) -> i.functionality.allowInventoryHighlighting = v)
153+
.enabledDisabled();
154+
CompositeOption<ComparableValue<Double>> INVENTORY_SEARCH_DARKEN_OPACITY = make("accessibility.inventory_search_darken_opacity", i -> ComparableValue.ofDouble(i.functionality.inventoryHighlightingDarkenOpacity), (i, v) -> i.functionality.inventoryHighlightingDarkenOpacity = v.value())
155+
.entry(OptionValueEntry.options(doubleRange(0.0, 1.0, 0.05))
156+
.overrideText(d -> literal("%.0f%%".formatted(d.value() * 100))));
157+
CompositeOption<ComparableValue<Double>> INVENTORY_SEARCH_OPACITY = make("accessibility.inventory_search_opacity", i -> ComparableValue.ofDouble(i.functionality.inventoryHighlightingOpacity), (i, v) -> i.functionality.inventoryHighlightingOpacity = v.value())
158+
.entry(OptionValueEntry.options(doubleRange(0.0, 1.0, 0.05))
159+
.overrideText(d -> literal("%.0f%%".formatted(d.value() * 100))));
143160
CompositeOption<Boolean> VANILLA_RECIPE_BOOK = make("accessibility.vanilla_recipe_book", i -> !i.functionality.disableRecipeBook, (i, v) -> i.functionality.disableRecipeBook = !v)
144161
.enabledDisabled();
145162
CompositeOption<Boolean> STATUS_EFFECTS_LOCATION = make("accessibility.status_effects_location", i -> i.functionality.leftSideMobEffects, (i, v) -> i.functionality.leftSideMobEffects = v)
146163
.ofBoolean(translatable("config.rei.value.accessibility.status_effects_location.right"), translatable("config.rei.value.accessibility.status_effects_location.left"));
147-
CompositeOption<Boolean> INVENTORY_SEARCH = make("accessibility.inventory_search", i -> i.functionality.allowInventoryHighlighting, (i, v) -> i.functionality.allowInventoryHighlighting = v)
148-
.enabledDisabled();
149164
CompositeOption<ConfigureCategoriesScreen> CATEGORIES = make("filtering.categories", i -> {
150165
return new ConfigureCategoriesScreen(
151166
new HashMap<>(i.getFilteringQuickCraftCategories()),
@@ -182,7 +197,9 @@ static <T> CompositeOption<T> make(String id, Function<ConfigObjectImpl, T> bind
182197
.ofBoolean(translatable("config.rei.value.list.display_mode.paginated"), translatable("config.rei.value.list.display_mode.scrolled"));
183198
CompositeOption<EntryPanelOrderingConfig> ORDERING = make("list.ordering", i -> i.advanced.layout.entryPanelOrdering, (i, v) -> i.advanced.layout.entryPanelOrdering = v)
184199
.enumOptions();
185-
CompositeOption<Double> ZOOM = make("list.zoom", i -> i.advanced.accessibility.entrySize, (i, v) -> i.advanced.accessibility.entrySize = v);
200+
CompositeOption<ComparableValue<Double>> ZOOM = make("list.zoom", i -> ComparableValue.ofDouble(i.advanced.accessibility.entrySize), (i, v) -> i.advanced.accessibility.entrySize = v.value())
201+
.entry(OptionValueEntry.options(doubleRange(0.25, 4.0, 0.25))
202+
.overrideText(d -> literal("%.0f%%".formatted(d.value() * 100))));
186203
CompositeOption<Boolean> FOCUS_MODE = make("list.focus_mode", i -> i.appearance.isFocusModeZoomed, (i, v) -> i.appearance.isFocusModeZoomed = v)
187204
.ofBoolean(translatable("config.rei.value.list.focus_mode.highlighted"), translatable("config.rei.value.list.focus_mode.zoomed"));
188205
CompositeOption<CollapsibleConfigManager.CollapsibleConfigObject> COLLAPSIBLE_ENTRIES = make("list.collapsible_entries", i -> {
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,70 @@
1+
/*
2+
* This file is licensed under the MIT License, part of Roughly Enough Items.
3+
* Copyright (c) 2018, 2019, 2020, 2021, 2022, 2023 shedaniel
4+
*
5+
* Permission is hereby granted, free of charge, to any person obtaining a copy
6+
* of this software and associated documentation files (the "Software"), to deal
7+
* in the Software without restriction, including without limitation the rights
8+
* to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9+
* copies of the Software, and to permit persons to whom the Software is
10+
* furnished to do so, subject to the following conditions:
11+
*
12+
* The above copyright notice and this permission notice shall be included in all
13+
* copies or substantial portions of the Software.
14+
*
15+
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16+
* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17+
* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18+
* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19+
* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20+
* OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21+
* SOFTWARE.
22+
*/
23+
24+
package me.shedaniel.rei.impl.client.gui.config.options;
25+
26+
import org.jetbrains.annotations.ApiStatus;
27+
28+
import java.util.Objects;
29+
import java.util.function.BiPredicate;
30+
31+
@ApiStatus.Internal
32+
public final class ComparableValue<T> {
33+
private final T value;
34+
private final BiPredicate<T, Object> equals;
35+
36+
private ComparableValue(T value, BiPredicate<T, Object> equals) {
37+
this.value = value;
38+
this.equals = equals;
39+
}
40+
41+
public static <T> ComparableValue<T> of(T value, BiPredicate<T, Object> equals) {
42+
return new ComparableValue<>(value, equals);
43+
}
44+
45+
public static ComparableValue<Float> ofFloat(float value) {
46+
return of(value, (a, b) -> b instanceof Float f && Math.abs(a - f) <= 0.001F);
47+
}
48+
49+
public static ComparableValue<Double> ofDouble(double value) {
50+
return of(value, (a, b) -> b instanceof Double d && Math.abs(a - d) <= 0.001D);
51+
}
52+
53+
public T value() {
54+
return value;
55+
}
56+
57+
@Override
58+
public boolean equals(Object obj) {
59+
if (obj instanceof ComparableValue) {
60+
return equals.test(value, ((ComparableValue<?>) obj).value);
61+
}
62+
63+
return false;
64+
}
65+
66+
@Override
67+
public int hashCode() {
68+
return Objects.hashCode(value);
69+
}
70+
}

runtime/src/main/java/me/shedaniel/rei/impl/client/gui/config/options/OptionValueEntry.java

+1-1
Original file line numberDiff line numberDiff line change
@@ -82,7 +82,7 @@ public Component getOption(T value) {
8282
};
8383
}
8484

85-
static <T> OptionValueEntry<T> options(T... options) {
85+
static <T> OptionValueEntry.Selection<T> options(T... options) {
8686
return new Selection<>() {
8787
@Override
8888
public List<T> getOptions() {

runtime/src/main/java/me/shedaniel/rei/impl/client/gui/config/options/configure/PanelBoundariesConfiguration.java

+1-1
Original file line numberDiff line numberDiff line change
@@ -308,7 +308,7 @@ public void render(GuiGraphics graphics, int mouseX, int mouseY, float delta) {
308308
}
309309

310310
private void renderPreview(GuiGraphics graphics, Rectangle panelBounds, float delta) {
311-
int entrySize = Mth.ceil(18 * access.get(AllREIConfigOptions.ZOOM));
311+
int entrySize = Mth.ceil(18 * access.get(AllREIConfigOptions.ZOOM).value());
312312
Rectangle overlayBounds;
313313
DisplayPanelLocation location = access.get(AllREIConfigOptions.LOCATION);
314314
PanelBoundary boundary = access.get(option);

runtime/src/main/java/me/shedaniel/rei/impl/client/gui/widget/EntryHighlighter.java

+15-10
Original file line numberDiff line numberDiff line change
@@ -24,34 +24,39 @@
2424
package me.shedaniel.rei.impl.client.gui.widget;
2525

2626
import com.mojang.blaze3d.systems.RenderSystem;
27+
import me.shedaniel.math.Color;
2728
import me.shedaniel.rei.api.common.util.EntryStacks;
29+
import me.shedaniel.rei.impl.client.config.ConfigManagerImpl;
2830
import me.shedaniel.rei.impl.client.gui.widget.entrylist.EntryListSearchManager;
2931
import net.minecraft.client.Minecraft;
3032
import net.minecraft.client.gui.GuiGraphics;
3133
import net.minecraft.client.gui.screens.inventory.AbstractContainerScreen;
34+
import net.minecraft.client.renderer.RenderType;
3235
import net.minecraft.world.inventory.Slot;
3336

3437
public class EntryHighlighter {
3538
public static void render(GuiGraphics graphics) {
39+
float dimOpacity = (float) ConfigManagerImpl.getInstance().getConfig().functionality.inventoryHighlightingDarkenOpacity;
40+
float opacity = (float) ConfigManagerImpl.getInstance().getConfig().functionality.inventoryHighlightingOpacity;
41+
int dimColor = Color.ofRGBA(20 / 255F, 20 / 255F, 20 / 255F, dimOpacity).getColor();
42+
int borderColor = Color.ofRGBA(0x5f / 255F, 0xff / 255F, 0x3b / 255F, opacity).getColor();
43+
int color = Color.ofRGBA(0x5f / 255F, 0xff / 255F, 0x3b / 255F, opacity * 0x34 / 255F).getColor();
3644
RenderSystem.disableDepthTest();
3745
RenderSystem.colorMask(true, true, true, false);
3846
if (Minecraft.getInstance().screen instanceof AbstractContainerScreen<?> containerScreen) {
3947
int x = containerScreen.leftPos, y = containerScreen.topPos;
4048
for (Slot slot : containerScreen.getMenu().slots) {
4149
if (!slot.hasItem() || !EntryListSearchManager.INSTANCE.matches(EntryStacks.of(slot.getItem()))) {
42-
graphics.pose().pushPose();
43-
graphics.pose().translate(0, 0, 500f);
44-
graphics.fillGradient(x + slot.x, y + slot.y, x + slot.x + 16, y + slot.y + 16, 0xdc202020, 0xdc202020);
45-
graphics.pose().popPose();
50+
graphics.fillGradient(RenderType.guiOverlay(), x + slot.x, y + slot.y, x + slot.x + 16, y + slot.y + 16, dimColor, dimColor, 0);
4651
} else {
4752
graphics.pose().pushPose();
4853
graphics.pose().translate(0, 0, 200f);
49-
graphics.fillGradient(x + slot.x, y + slot.y, x + slot.x + 16, y + slot.y + 16, 0x345fff3b, 0x345fff3b);
50-
51-
graphics.fillGradient(x + slot.x - 1, y + slot.y - 1, x + slot.x, y + slot.y + 16 + 1, 0xff5fff3b, 0xff5fff3b);
52-
graphics.fillGradient(x + slot.x + 16, y + slot.y - 1, x + slot.x + 16 + 1, y + slot.y + 16 + 1, 0xff5fff3b, 0xff5fff3b);
53-
graphics.fillGradient(x + slot.x - 1, y + slot.y - 1, x + slot.x + 16, y + slot.y, 0xff5fff3b, 0xff5fff3b);
54-
graphics.fillGradient(x + slot.x - 1, y + slot.y + 16, x + slot.x + 16, y + slot.y + 16 + 1, 0xff5fff3b, 0xff5fff3b);
54+
graphics.fillGradient(x + slot.x, y + slot.y, x + slot.x + 16, y + slot.y + 16, color, color);
55+
56+
graphics.fillGradient(x + slot.x - 1, y + slot.y - 1, x + slot.x, y + slot.y + 16 + 1, borderColor, borderColor);
57+
graphics.fillGradient(x + slot.x + 16, y + slot.y - 1, x + slot.x + 16 + 1, y + slot.y + 16 + 1, borderColor, borderColor);
58+
graphics.fillGradient(x + slot.x - 1, y + slot.y - 1, x + slot.x + 16, y + slot.y, borderColor, borderColor);
59+
graphics.fillGradient(x + slot.x - 1, y + slot.y + 16, x + slot.x + 16, y + slot.y + 16 + 1, borderColor, borderColor);
5560

5661
graphics.pose().popPose();
5762
}

runtime/src/main/java/me/shedaniel/rei/impl/client/gui/widget/entrylist/EntryListWidget.java

+1-1
Original file line numberDiff line numberDiff line change
@@ -172,7 +172,7 @@ public boolean mouseScrolled(double mouseX, double mouseY, double amountX, doubl
172172
if (Screen.hasControlDown()) {
173173
ConfigObjectImpl config = ConfigManagerImpl.getInstance().getConfig();
174174
scaleIndicator.setAs(10.0D);
175-
if (config.setEntrySize(config.getEntrySize() + amountY * 0.075)) {
175+
if (config.setEntrySize(config.getEntrySize() + Double.compare(amountY, 0) * 0.05)) {
176176
ConfigManager.getInstance().saveConfig();
177177
REIRuntime.getInstance().getOverlay().ifPresent(ScreenOverlay::queueReloadOverlay);
178178
return true;

runtime/src/main/java/me/shedaniel/rei/impl/client/search/collapsed/CollapsedEntriesCache.java

-3
Original file line numberDiff line numberDiff line change
@@ -23,7 +23,6 @@
2323

2424
package me.shedaniel.rei.impl.client.search.collapsed;
2525

26-
import com.google.common.collect.Lists;
2726
import it.unimi.dsi.fastutil.longs.Long2ObjectMap;
2827
import it.unimi.dsi.fastutil.longs.Long2ObjectOpenHashMap;
2928
import me.shedaniel.rei.api.client.registry.entry.CollapsibleEntryRegistry;
@@ -35,9 +34,7 @@
3534

3635
import java.util.Collection;
3736
import java.util.HashSet;
38-
import java.util.List;
3937
import java.util.Set;
40-
import java.util.concurrent.CompletableFuture;
4138

4239
public class CollapsedEntriesCache {
4340
private static CollapsedEntriesCache instance = new CollapsedEntriesCache();

runtime/src/main/resources/assets/roughlyenoughitems/lang/cs_cz.json

+2-1
Original file line numberDiff line numberDiff line change
@@ -128,6 +128,7 @@
128128
"text.rei.left_arrow": "<",
129129
"text.rei.right_arrow": ">",
130130
"text.rei.view_all_categories": "Zobrazit všechny kategorie ",
131+
"text.rei.view_all_categories.tooltip": "%d kategorií",
131132
"text.rei.go_back_first_page": "Zpět na stranu 1",
132133
"text.rei.choose_page": "Vybrat stranu",
133134
"text.rei.shift_click_to": "Shift-Klik na %s",
@@ -398,7 +399,6 @@
398399
"config.rei.options.groups.search.advanced": "Pokročilé",
399400
"config.rei.options.search.async_search": "Asynchronní vyhledávání",
400401
"config.rei.options.search.async_search.desc": "Paralelizovat vyhledávání s více vlákny. To obvykle zlepšuje výkon a \"pohotovost\" vyhledávání.",
401-
"config.rei.options.search.async_search.mode": "Režim",
402402
"config.rei.options.search.async_search.partition_size": "Velikost oddílu",
403403
"config.rei.options.search.async_search.patch_thread_crash": "Oprava pádu vlákna",
404404
"config.rei.options.groups.filtering.filtering": "Filtrování",
@@ -453,6 +453,7 @@
453453
"config.rei.value.trueFalse.true": "Ano",
454454
"config.rei.value.enabledDisabled.false": "Zakázáno",
455455
"config.rei.value.enabledDisabled.true": "Povoleno",
456+
"config.rei.texts.search_options": "Možnosti hledání...",
456457
"config.rei.texts.preview": "Náhled...",
457458
"config.rei.texts.configure": "Konfigurovat...",
458459
"config.rei.texts.details": "Detaily...",

0 commit comments

Comments
 (0)