Skip to content

Commit 708ea5c

Browse files
Fix design view error (#46)
* fixed #45 design view does not displayed. * Added Russian language resources. --------- Co-authored-by: Ii Daisuke <dai@e-frontier.systems>
1 parent 8fe5932 commit 708ea5c

3 files changed

Lines changed: 131 additions & 8 deletions

File tree

Lines changed: 101 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,101 @@
1+
<?xml version="1.0" encoding="utf-8"?>
2+
<root>
3+
<!--
4+
Microsoft ResX Schema
5+
6+
Version 1.3
7+
8+
The primary goals of this format is to allow a simple XML format
9+
that is mostly human readable. The generation and parsing of the
10+
various data types are done through the TypeConverter classes
11+
associated with the data types.
12+
13+
Example:
14+
15+
... ado.net/XML headers & schema ...
16+
<resheader name="resmimetype">text/microsoft-resx</resheader>
17+
<resheader name="version">1.3</resheader>
18+
<resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>
19+
<resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>
20+
<data name="Name1">this is my long string</data>
21+
<data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>
22+
<data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
23+
[base64 mime encoded serialized .NET Framework object]
24+
</data>
25+
<data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
26+
[base64 mime encoded string representing a byte array form of the .NET Framework object]
27+
</data>
28+
29+
There are any number of "resheader" rows that contain simple
30+
name/value pairs.
31+
32+
Each data row contains a name, and value. The row also contains a
33+
type or mimetype. Type corresponds to a .NET class that support
34+
text/value conversion through the TypeConverter architecture.
35+
Classes that don't support this are serialized and stored with the
36+
mimetype set.
37+
38+
The mimetype is used for serialized objects, and tells the
39+
ResXResourceReader how to depersist the object. This is currently not
40+
extensible. For a given mimetype the value must be set accordingly:
41+
42+
Note - application/x-microsoft.net.object.binary.base64 is the format
43+
that the ResXResourceWriter will generate, however the reader can
44+
read any of the formats listed below.
45+
46+
mimetype: application/x-microsoft.net.object.binary.base64
47+
value : The object must be serialized with
48+
: System.Serialization.Formatters.Binary.BinaryFormatter
49+
: and then encoded with base64 encoding.
50+
51+
mimetype: application/x-microsoft.net.object.soap.base64
52+
value : The object must be serialized with
53+
: System.Runtime.Serialization.Formatters.Soap.SoapFormatter
54+
: and then encoded with base64 encoding.
55+
56+
mimetype: application/x-microsoft.net.object.bytearray.base64
57+
value : The object must be serialized into a byte array
58+
: using a System.ComponentModel.TypeConverter
59+
: and then encoded with base64 encoding.
60+
-->
61+
62+
<xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
63+
<xsd:element name="root" msdata:IsDataSet="true">
64+
<xsd:complexType>
65+
<xsd:choice maxOccurs="unbounded">
66+
<xsd:element name="data">
67+
<xsd:complexType>
68+
<xsd:sequence>
69+
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
70+
<xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
71+
</xsd:sequence>
72+
<xsd:attribute name="name" type="xsd:string" msdata:Ordinal="1" />
73+
<xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
74+
<xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
75+
</xsd:complexType>
76+
</xsd:element>
77+
<xsd:element name="resheader">
78+
<xsd:complexType>
79+
<xsd:sequence>
80+
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
81+
</xsd:sequence>
82+
<xsd:attribute name="name" type="xsd:string" use="required" />
83+
</xsd:complexType>
84+
</xsd:element>
85+
</xsd:choice>
86+
</xsd:complexType>
87+
</xsd:element>
88+
</xsd:schema>
89+
<resheader name="resmimetype">
90+
<value>text/microsoft-resx</value>
91+
</resheader>
92+
<resheader name="version">
93+
<value>1.3</value>
94+
</resheader>
95+
<resheader name="reader">
96+
<value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.3500.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
97+
</resheader>
98+
<resheader name="writer">
99+
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.3500.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
100+
</resheader>
101+
</root>

spoclient/Views/Extensions/TranslateExtension.cs

Lines changed: 24 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -10,16 +10,38 @@ public class TranslateExtension : MarkupExtension
1010
public string Key { get; set; }
1111

1212

13+
public string DefaultValue { get; set; }
14+
15+
1316
public TranslateExtension(string key)
1417
{
1518
Key = key;
19+
DefaultValue = key;
20+
}
21+
22+
23+
public TranslateExtension(string key, string defaultValue)
24+
{
25+
Key = key;
26+
DefaultValue = defaultValue;
1627
}
1728

1829

1930
public override object ProvideValue(IServiceProvider serviceProvider)
2031
{
21-
var localizationManager = ContainerLocator.Container.Resolve<ILocalizationManager>();
22-
return localizationManager.GetValue(Key, "UI");
32+
try
33+
{
34+
var localizationManager = ContainerLocator.Container.Resolve<ILocalizationManager>();
35+
if (localizationManager == null)
36+
{
37+
return DefaultValue;
38+
}
39+
return localizationManager.GetValue(Key, "UI");
40+
}
41+
catch
42+
{
43+
return DefaultValue;
44+
}
2345
}
2446
}
2547
}

spoclient/Views/ServersDialog.axaml

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -29,10 +29,10 @@
2929
</Interaction.Behaviors>
3030

3131
<DataGrid.Columns>
32-
<DataGridTextColumn Header="Entry" Binding="{Binding Name}" />
33-
<DataGridTextColumn Header="Server" Binding="{Binding Host}" />
34-
<DataGridTextColumn Header="User" Binding="{Binding User}" />
35-
<DataGridTextColumn Header="Port" Binding="{Binding Port}" />
32+
<DataGridTextColumn Header="{l10n:Translate Entry}" Binding="{Binding Name}" />
33+
<DataGridTextColumn Header="{l10n:Translate Hostname}" Binding="{Binding Host}" />
34+
<DataGridTextColumn Header="{l10n:Translate Username}" Binding="{Binding User}" />
35+
<DataGridTextColumn Header="{l10n:Translate Port}" Binding="{Binding Port}" />
3636
</DataGrid.Columns>
3737

3838
</DataGrid>
@@ -43,9 +43,9 @@
4343
</StackPanel>
4444

4545
<StackPanel Grid.Column="1" Orientation="Vertical" Margin="6 0 0 0" VerticalAlignment="Bottom">
46-
<Button Margin="2" MinWidth="100" Command="{Binding NewServerCommand}" Content="{l10n:Translate AddServer}"></Button>
46+
<Button Margin="2" MinWidth="100" Command="{Binding NewServerCommand}" Content="{l10n:Translate AddServer, Add}"></Button>
4747
<Button Margin="2" MinWidth="100" Command="{Binding EditServerCommand}" Content="{l10n:Translate Edit}"></Button>
48-
<Button Margin="2" MinWidth="100" Command="{Binding DeleteServerCommand}" Content="{l10n:Translate RemoveServer}"></Button>
48+
<Button Margin="2" MinWidth="100" Command="{Binding DeleteServerCommand}" Content="{l10n:Translate RemoveServer, Remove}"></Button>
4949
</StackPanel>
5050

5151
</Grid>

0 commit comments

Comments
 (0)