Compare commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
7e3be9ed41 |
No files matched your search
@@ -167,6 +167,10 @@ The Android release key: alias `meweb`, certificate SHA-256
|
|||||||
right-to-left languages the `Localizer` wraps the name in U+2066/U+2069 (left-to-right isolate), the English fallback
|
right-to-left languages the `Localizer` wraps the name in U+2066/U+2069 (left-to-right isolate), the English fallback
|
||||||
included: without it Avalonia lays out ”me-web?“ alone on a line as `me-web?”“`, and inside a sentence the `?`
|
included: without it Avalonia lays out ”me-web?“ alone on a line as `me-web?”“`, and inside a sentence the `?`
|
||||||
jumps to the other end of the name. A left-to-right mark after the name was tried and does not fix the lone title.
|
jumps to the other end of the name. A left-to-right mark after the name was tried and does not fix the lone title.
|
||||||
|
- **Avalonia 12 refreshes an indexer binding only on `PropertyChanged("Item")`.** `{s:Tr Key}` binds `Localizer.Instance[Key]`;
|
||||||
|
the WPF name `"Item[]"` and `""` refresh nothing, so until 0.7.1 changing the language left every `{s:Tr}` text in
|
||||||
|
the old one while the view models' `*Formatted` strings followed. The screenshot tool draws each `start-<code>`
|
||||||
|
shot by switching from English on a live view, which is the check that would have caught it.
|
||||||
- **Values worth copying are read-only text boxes with a copy button inside** (`Views/CopyField`): addresses, the
|
- **Values worth copying are read-only text boxes with a copy button inside** (`Views/CopyField`): addresses, the
|
||||||
router, the network, the reverse name, the route, the STUN answers and a submission's code. The box is
|
router, the network, the reverse name, the route, the STUN answers and a submission's code. The box is
|
||||||
left-to-right in every language and copies the raw value, never the bidi marks `Texts.Isolate` adds to display
|
left-to-right in every language and copies the raw value, never the bidi marks `Texts.Isolate` adds to display
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
<Project>
|
<Project>
|
||||||
<PropertyGroup>
|
<PropertyGroup>
|
||||||
<Version>0.7.0</Version>
|
<Version>0.7.1</Version>
|
||||||
<Product>“me-web?”</Product>
|
<Product>“me-web?”</Product>
|
||||||
<Company>Arasaka di Hvozdikov Yevheniy</Company>
|
<Company>Arasaka di Hvozdikov Yevheniy</Company>
|
||||||
<Copyright>© 2026 Arasaka di Hvozdikov Yevheniy</Copyright>
|
<Copyright>© 2026 Arasaka di Hvozdikov Yevheniy</Copyright>
|
||||||
|
|||||||
@@ -53,7 +53,7 @@ public sealed class Localizer : INotifyPropertyChanged
|
|||||||
Culture = CultureFor(Language.Code);
|
Culture = CultureFor(Language.Code);
|
||||||
CultureInfo.DefaultThreadCurrentCulture = CultureInfo.DefaultThreadCurrentUICulture = Culture;
|
CultureInfo.DefaultThreadCurrentCulture = CultureInfo.DefaultThreadCurrentUICulture = Culture;
|
||||||
CultureInfo.CurrentCulture = CultureInfo.CurrentUICulture = Culture;
|
CultureInfo.CurrentCulture = CultureInfo.CurrentUICulture = Culture;
|
||||||
PropertyChanged?.Invoke(this, new PropertyChangedEventArgs("Item[]"));
|
PropertyChanged?.Invoke(this, new PropertyChangedEventArgs("Item"));
|
||||||
PropertyChanged?.Invoke(this, new PropertyChangedEventArgs(string.Empty));
|
PropertyChanged?.Invoke(this, new PropertyChangedEventArgs(string.Empty));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -59,7 +59,9 @@
|
|||||||
<Grid>
|
<Grid>
|
||||||
<DockPanel>
|
<DockPanel>
|
||||||
<Grid DockPanel.Dock="Top" ColumnDefinitions="*,Auto,Auto" Margin="20,14,20,6">
|
<Grid DockPanel.Dock="Top" ColumnDefinitions="*,Auto,Auto" Margin="20,14,20,6">
|
||||||
<TextBlock Grid.Column="0" Classes="title" Text="{s:Tr AppName}" VerticalAlignment="Center" />
|
<Viewbox Grid.Column="0" StretchDirection="DownOnly" HorizontalAlignment="Left" VerticalAlignment="Center" Margin="0,0,10,0">
|
||||||
|
<TextBlock Classes="title" Text="{s:Tr AppName}" />
|
||||||
|
</Viewbox>
|
||||||
<Button Grid.Column="1" Classes="round" Margin="0,0,10,0" VerticalAlignment="Center"
|
<Button Grid.Column="1" Classes="round" Margin="0,0,10,0" VerticalAlignment="Center"
|
||||||
AutomationProperties.AutomationId="main-contacts"
|
AutomationProperties.AutomationId="main-contacts"
|
||||||
AutomationProperties.Name="{s:Tr Contacts}"
|
AutomationProperties.Name="{s:Tr Contacts}"
|
||||||
|
|||||||
@@ -19,6 +19,7 @@ Directory.CreateDirectory(output);
|
|||||||
var session = HeadlessUnitTestSession.StartNew(typeof(ScreenshotEntry));
|
var session = HeadlessUnitTestSession.StartNew(typeof(ScreenshotEntry));
|
||||||
await session.Dispatch(async () =>
|
await session.Dispatch(async () =>
|
||||||
{
|
{
|
||||||
|
var saved = AppSettings.Read();
|
||||||
var run = await App.Services.GetRequiredService<CheckRunner>().Run((_, _) => { }, CancellationToken.None);
|
var run = await App.Services.GetRequiredService<CheckRunner>().Run((_, _) => { }, CancellationToken.None);
|
||||||
Console.WriteLine($"run: {string.Join(", ", run.Findings.Select(f => $"{f.Id}={f.Outcome}"))}");
|
Console.WriteLine($"run: {string.Join(", ", run.Findings.Select(f => $"{f.Id}={f.Outcome}"))}");
|
||||||
foreach (var (width, height, label) in new[] { (1100, 1500, "desktop"), (400, 8000, "phone") })
|
foreach (var (width, height, label) in new[] { (1100, 1500, "desktop"), (400, 8000, "phone") })
|
||||||
@@ -29,7 +30,8 @@ await session.Dispatch(async () =>
|
|||||||
Shoot(width, height, $"main-{label}-{code}", model => model.Replay(run));
|
Shoot(width, height, $"main-{label}-{code}", model => model.Replay(run));
|
||||||
if (label != "desktop")
|
if (label != "desktop")
|
||||||
{
|
{
|
||||||
Shoot(width, 860, $"start-{code}", _ => { });
|
Localizer.Instance.SetLanguage(Languages.Fallback);
|
||||||
|
Shoot(width, 860, $"start-{code}", model => model.SelectedLanguage = Languages.Find(code) ?? Languages.Fallback);
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
Shoot(width, 900, $"contacts-{code}", model => model.ShowContacts = true);
|
Shoot(width, 900, $"contacts-{code}", model => model.ShowContacts = true);
|
||||||
@@ -40,6 +42,7 @@ await session.Dispatch(async () =>
|
|||||||
});
|
});
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
AppSettings.Write(saved);
|
||||||
return 0;
|
return 0;
|
||||||
}, CancellationToken.None);
|
}, CancellationToken.None);
|
||||||
Environment.Exit(0);
|
Environment.Exit(0);
|
||||||
|
|||||||
Reference in new issue
Block a user