Merge pull request #2890 from L1Q/master

Translation improvements and updates
This commit is contained in:
Jaex 2017-10-29 10:10:12 +03:00 committed by GitHub
commit 7cae61c18c
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
15 changed files with 626 additions and 25 deletions

View file

@ -0,0 +1,141 @@
<?xml version="1.0" encoding="utf-8"?>
<root>
<!--
Microsoft ResX Schema
Version 2.0
The primary goals of this format is to allow a simple XML format
that is mostly human readable. The generation and parsing of the
various data types are done through the TypeConverter classes
associated with the data types.
Example:
... ado.net/XML headers & schema ...
<resheader name="resmimetype">text/microsoft-resx</resheader>
<resheader name="version">2.0</resheader>
<resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>
<resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>
<data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data>
<data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>
<data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
<value>[base64 mime encoded serialized .NET Framework object]</value>
</data>
<data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value>
<comment>This is a comment</comment>
</data>
There are any number of "resheader" rows that contain simple
name/value pairs.
Each data row contains a name, and value. The row also contains a
type or mimetype. Type corresponds to a .NET class that support
text/value conversion through the TypeConverter architecture.
Classes that don't support this are serialized and stored with the
mimetype set.
The mimetype is used for serialized objects, and tells the
ResXResourceReader how to depersist the object. This is currently not
extensible. For a given mimetype the value must be set accordingly:
Note - application/x-microsoft.net.object.binary.base64 is the format
that the ResXResourceWriter will generate, however the reader can
read any of the formats listed below.
mimetype: application/x-microsoft.net.object.binary.base64
value : The object must be serialized with
: System.Runtime.Serialization.Formatters.Binary.BinaryFormatter
: and then encoded with base64 encoding.
mimetype: application/x-microsoft.net.object.soap.base64
value : The object must be serialized with
: System.Runtime.Serialization.Formatters.Soap.SoapFormatter
: and then encoded with base64 encoding.
mimetype: application/x-microsoft.net.object.bytearray.base64
value : The object must be serialized into a byte array
: using a System.ComponentModel.TypeConverter
: and then encoded with base64 encoding.
-->
<xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
<xsd:import namespace="http://www.w3.org/XML/1998/namespace" />
<xsd:element name="root" msdata:IsDataSet="true">
<xsd:complexType>
<xsd:choice maxOccurs="unbounded">
<xsd:element name="metadata">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" />
</xsd:sequence>
<xsd:attribute name="name" use="required" type="xsd:string" />
<xsd:attribute name="type" type="xsd:string" />
<xsd:attribute name="mimetype" type="xsd:string" />
<xsd:attribute ref="xml:space" />
</xsd:complexType>
</xsd:element>
<xsd:element name="assembly">
<xsd:complexType>
<xsd:attribute name="alias" type="xsd:string" />
<xsd:attribute name="name" type="xsd:string" />
</xsd:complexType>
</xsd:element>
<xsd:element name="data">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
<xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
</xsd:sequence>
<xsd:attribute name="name" type="xsd:string" use="required" msdata:Ordinal="1" />
<xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
<xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
<xsd:attribute ref="xml:space" />
</xsd:complexType>
</xsd:element>
<xsd:element name="resheader">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
</xsd:sequence>
<xsd:attribute name="name" type="xsd:string" use="required" />
</xsd:complexType>
</xsd:element>
</xsd:choice>
</xsd:complexType>
</xsd:element>
</xsd:schema>
<resheader name="resmimetype">
<value>text/microsoft-resx</value>
</resheader>
<resheader name="version">
<value>2.0</value>
</resheader>
<resheader name="reader">
<value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
<resheader name="writer">
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
<data name="$this.Text" xml:space="preserve">
<value>ShareX - Размер полотна</value>
</data>
<data name="lblLeft.Text" xml:space="preserve">
<value>Слева:</value>
</data>
<data name="lblRight.Text" xml:space="preserve">
<value>Справа:</value>
</data>
<data name="lblBottom.Text" xml:space="preserve">
<value>Снизу:</value>
</data>
<data name="lblTop.Text" xml:space="preserve">
<value>Сверху:</value>
</data>
<data name="btnOK.Text" xml:space="preserve">
<value>ОК</value>
</data>
<data name="btnCancel.Text" xml:space="preserve">
<value>Отменить</value>
</data>
</root>

View file

@ -0,0 +1,144 @@
<?xml version="1.0" encoding="utf-8"?>
<root>
<!--
Microsoft ResX Schema
Version 2.0
The primary goals of this format is to allow a simple XML format
that is mostly human readable. The generation and parsing of the
various data types are done through the TypeConverter classes
associated with the data types.
Example:
... ado.net/XML headers & schema ...
<resheader name="resmimetype">text/microsoft-resx</resheader>
<resheader name="version">2.0</resheader>
<resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>
<resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>
<data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data>
<data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>
<data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
<value>[base64 mime encoded serialized .NET Framework object]</value>
</data>
<data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value>
<comment>This is a comment</comment>
</data>
There are any number of "resheader" rows that contain simple
name/value pairs.
Each data row contains a name, and value. The row also contains a
type or mimetype. Type corresponds to a .NET class that support
text/value conversion through the TypeConverter architecture.
Classes that don't support this are serialized and stored with the
mimetype set.
The mimetype is used for serialized objects, and tells the
ResXResourceReader how to depersist the object. This is currently not
extensible. For a given mimetype the value must be set accordingly:
Note - application/x-microsoft.net.object.binary.base64 is the format
that the ResXResourceWriter will generate, however the reader can
read any of the formats listed below.
mimetype: application/x-microsoft.net.object.binary.base64
value : The object must be serialized with
: System.Runtime.Serialization.Formatters.Binary.BinaryFormatter
: and then encoded with base64 encoding.
mimetype: application/x-microsoft.net.object.soap.base64
value : The object must be serialized with
: System.Runtime.Serialization.Formatters.Soap.SoapFormatter
: and then encoded with base64 encoding.
mimetype: application/x-microsoft.net.object.bytearray.base64
value : The object must be serialized into a byte array
: using a System.ComponentModel.TypeConverter
: and then encoded with base64 encoding.
-->
<xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
<xsd:import namespace="http://www.w3.org/XML/1998/namespace" />
<xsd:element name="root" msdata:IsDataSet="true">
<xsd:complexType>
<xsd:choice maxOccurs="unbounded">
<xsd:element name="metadata">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" />
</xsd:sequence>
<xsd:attribute name="name" use="required" type="xsd:string" />
<xsd:attribute name="type" type="xsd:string" />
<xsd:attribute name="mimetype" type="xsd:string" />
<xsd:attribute ref="xml:space" />
</xsd:complexType>
</xsd:element>
<xsd:element name="assembly">
<xsd:complexType>
<xsd:attribute name="alias" type="xsd:string" />
<xsd:attribute name="name" type="xsd:string" />
</xsd:complexType>
</xsd:element>
<xsd:element name="data">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
<xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
</xsd:sequence>
<xsd:attribute name="name" type="xsd:string" use="required" msdata:Ordinal="1" />
<xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
<xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
<xsd:attribute ref="xml:space" />
</xsd:complexType>
</xsd:element>
<xsd:element name="resheader">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
</xsd:sequence>
<xsd:attribute name="name" type="xsd:string" use="required" />
</xsd:complexType>
</xsd:element>
</xsd:choice>
</xsd:complexType>
</xsd:element>
</xsd:schema>
<resheader name="resmimetype">
<value>text/microsoft-resx</value>
</resheader>
<resheader name="version">
<value>2.0</value>
</resheader>
<resheader name="reader">
<value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
<resheader name="writer">
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
<data name="$this.Text" xml:space="preserve">
<value>ShareX - Размер изображения</value>
</data>
<data name="lblWidth.Text" xml:space="preserve">
<value>Ширина:</value>
</data>
<data name="lblHeight.Text" xml:space="preserve">
<value>Высота:</value>
</data>
<data name="cbAspectRatio.Text" xml:space="preserve">
<value>Сохранять пропорции</value>
</data>
<data name="btnOK.Text" xml:space="preserve">
<value>ОК</value>
</data>
<data name="btnCancel.Text" xml:space="preserve">
<value>Отменить</value>
</data>
<data name="lblWidthPixels.Text" xml:space="preserve">
<value>пикселей</value>
</data>
<data name="lblHeightPixels.Text" xml:space="preserve">
<value>пикселей</value>
</data>
</root>

View file

@ -150,7 +150,7 @@ private void InitializeComponent()
if (IsEditorMode)
{
Text = "ShareX - " + "Image editor"; // TODO: Translate
Text = "ShareX - " + Resources.RegionCaptureForm_InitializeComponent_ImageEditor;
}
else
{

View file

@ -1121,6 +1121,15 @@ internal static string RectangleTransparent_RectangleTransparent_Rectangle_captu
}
}
/// <summary>
/// Looks up a localized string similar to Image editor.
/// </summary>
internal static string RegionCaptureForm_InitializeComponent_ImageEditor {
get {
return ResourceManager.GetString("RegionCaptureForm_InitializeComponent_ImageEditor", resourceCulture);
}
}
/// <summary>
/// Looks up a localized string similar to [Arrow keys] Resize region from bottom right corner.
/// </summary>
@ -1193,6 +1202,24 @@ internal static string ScrollingCaptureForm_StopCapture_Start_capture {
}
}
/// <summary>
/// Looks up a localized string similar to Arrows on both ends.
/// </summary>
internal static string ShapeManager_ArrowsOnBothEnds {
get {
return ResourceManager.GetString("ShapeManager_ArrowsOnBothEnds", resourceCulture);
}
}
/// <summary>
/// Looks up a localized string similar to Center points:.
/// </summary>
internal static string ShapeManager_CenterPoints {
get {
return ResourceManager.GetString("ShapeManager_CenterPoints", resourceCulture);
}
}
/// <summary>
/// Looks up a localized string similar to Blur radius:.
/// </summary>
@ -1427,6 +1454,15 @@ internal static string ShapeManager_CreateContextMenu_Width_ {
}
}
/// <summary>
/// Looks up a localized string similar to Annotate menu.
/// </summary>
internal static string ShapeManager_CreateToolbar_AnnotateMenu {
get {
return ResourceManager.GetString("ShapeManager_CreateToolbar_AnnotateMenu", resourceCulture);
}
}
/// <summary>
/// Looks up a localized string similar to Apply changes &amp; continue task (Enter).
/// </summary>
@ -1463,6 +1499,15 @@ internal static string ShapeManager_CreateToolbar_CancelTaskEsc {
}
}
/// <summary>
/// Looks up a localized string similar to Canvas size....
/// </summary>
internal static string ShapeManager_CreateToolbar_CanvasSize {
get {
return ResourceManager.GetString("ShapeManager_CreateToolbar_CanvasSize", resourceCulture);
}
}
/// <summary>
/// Looks up a localized string similar to Capture regions.
/// </summary>
@ -1526,6 +1571,42 @@ internal static string ShapeManager_CreateToolbar_Edit {
}
}
/// <summary>
/// Looks up a localized string similar to Flip horizontal.
/// </summary>
internal static string ShapeManager_CreateToolbar_FlipHorizontal {
get {
return ResourceManager.GetString("ShapeManager_CreateToolbar_FlipHorizontal", resourceCulture);
}
}
/// <summary>
/// Looks up a localized string similar to Flip vertical.
/// </summary>
internal static string ShapeManager_CreateToolbar_FlipVertical {
get {
return ResourceManager.GetString("ShapeManager_CreateToolbar_FlipVertical", resourceCulture);
}
}
/// <summary>
/// Looks up a localized string similar to Image.
/// </summary>
internal static string ShapeManager_CreateToolbar_Image {
get {
return ResourceManager.GetString("ShapeManager_CreateToolbar_Image", resourceCulture);
}
}
/// <summary>
/// Looks up a localized string similar to Image size....
/// </summary>
internal static string ShapeManager_CreateToolbar_ImageSize {
get {
return ResourceManager.GetString("ShapeManager_CreateToolbar_ImageSize", resourceCulture);
}
}
/// <summary>
/// Looks up a localized string similar to Capture last region.
/// </summary>
@ -1544,6 +1625,42 @@ internal static string ShapeManager_CreateToolbar_PrintImage {
}
}
/// <summary>
/// Looks up a localized string similar to Remember editor window state.
/// </summary>
internal static string ShapeManager_CreateToolbar_RememberEditorWindowState {
get {
return ResourceManager.GetString("ShapeManager_CreateToolbar_RememberEditorWindowState", resourceCulture);
}
}
/// <summary>
/// Looks up a localized string similar to Rotate 180°.
/// </summary>
internal static string ShapeManager_CreateToolbar_Rotate180 {
get {
return ResourceManager.GetString("ShapeManager_CreateToolbar_Rotate180", resourceCulture);
}
}
/// <summary>
/// Looks up a localized string similar to Rotate 90° clockwise.
/// </summary>
internal static string ShapeManager_CreateToolbar_Rotate90Clockwise {
get {
return ResourceManager.GetString("ShapeManager_CreateToolbar_Rotate90Clockwise", resourceCulture);
}
}
/// <summary>
/// Looks up a localized string similar to Rotate 90° counter clockwise.
/// </summary>
internal static string ShapeManager_CreateToolbar_Rotate90CounterClockwise {
get {
return ResourceManager.GetString("ShapeManager_CreateToolbar_Rotate90CounterClockwise", resourceCulture);
}
}
/// <summary>
/// Looks up a localized string similar to Run after capture tasks.
/// </summary>
@ -1598,6 +1715,24 @@ internal static string ShapeManager_CreateToolbar_ShapeOptions {
}
}
/// <summary>
/// Looks up a localized string similar to Start editor fullscreen.
/// </summary>
internal static string ShapeManager_CreateToolbar_StartEditorFullscreen {
get {
return ResourceManager.GetString("ShapeManager_CreateToolbar_StartEditorFullscreen", resourceCulture);
}
}
/// <summary>
/// Looks up a localized string similar to Start editor maximized.
/// </summary>
internal static string ShapeManager_CreateToolbar_StartEditorMaximized {
get {
return ResourceManager.GetString("ShapeManager_CreateToolbar_StartEditorMaximized", resourceCulture);
}
}
/// <summary>
/// Looks up a localized string similar to Undo.
/// </summary>
@ -1616,6 +1751,15 @@ internal static string ShapeManager_CreateToolbar_UploadImage {
}
}
/// <summary>
/// Looks up a localized string similar to Cursor type:.
/// </summary>
internal static string ShapeManager_CursorType {
get {
return ResourceManager.GetString("ShapeManager_CursorType", resourceCulture);
}
}
/// <summary>
/// Looks up a localized resource of type System.Drawing.Bitmap.
/// </summary>

View file

@ -636,4 +636,52 @@ Distance: {6:0.00} px / Angle: {7:0.00}°</value>
<data name="layer_flip_vertical" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\Resources\layer-flip-vertical.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data>
<data name="RegionCaptureForm_InitializeComponent_ImageEditor" xml:space="preserve">
<value>Image editor</value>
</data>
<data name="ShapeManager_CreateToolbar_AnnotateMenu" xml:space="preserve">
<value>Annotate menu</value>
</data>
<data name="ShapeManager_CursorType" xml:space="preserve">
<value>Cursor type:</value>
</data>
<data name="ShapeManager_CenterPoints" xml:space="preserve">
<value>Center points:</value>
</data>
<data name="ShapeManager_ArrowsOnBothEnds" xml:space="preserve">
<value>Arrows on both ends</value>
</data>
<data name="ShapeManager_CreateToolbar_Image" xml:space="preserve">
<value>Image</value>
</data>
<data name="ShapeManager_CreateToolbar_ImageSize" xml:space="preserve">
<value>Image size...</value>
</data>
<data name="ShapeManager_CreateToolbar_CanvasSize" xml:space="preserve">
<value>Canvas size...</value>
</data>
<data name="ShapeManager_CreateToolbar_Rotate90Clockwise" xml:space="preserve">
<value>Rotate 90° clockwise</value>
</data>
<data name="ShapeManager_CreateToolbar_Rotate90CounterClockwise" xml:space="preserve">
<value>Rotate 90° counter clockwise</value>
</data>
<data name="ShapeManager_CreateToolbar_Rotate180" xml:space="preserve">
<value>Rotate 180°</value>
</data>
<data name="ShapeManager_CreateToolbar_FlipHorizontal" xml:space="preserve">
<value>Flip horizontal</value>
</data>
<data name="ShapeManager_CreateToolbar_FlipVertical" xml:space="preserve">
<value>Flip vertical</value>
</data>
<data name="ShapeManager_CreateToolbar_StartEditorMaximized" xml:space="preserve">
<value>Start editor maximized</value>
</data>
<data name="ShapeManager_CreateToolbar_RememberEditorWindowState" xml:space="preserve">
<value>Remember editor window state</value>
</data>
<data name="ShapeManager_CreateToolbar_StartEditorFullscreen" xml:space="preserve">
<value>Start editor fullscreen</value>
</data>
</root>

View file

@ -425,4 +425,52 @@
<data name="ShapeManager_CreateContextMenu_Capture" xml:space="preserve">
<value>Захват</value>
</data>
<data name="RegionCaptureForm_InitializeComponent_ImageEditor" xml:space="preserve">
<value>Редактор изображений</value>
</data>
<data name="ShapeManager_CreateToolbar_AnnotateMenu" xml:space="preserve">
<value>Меню примечаний</value>
</data>
<data name="ShapeManager_CursorType" xml:space="preserve">
<value>Тип курсора:</value>
</data>
<data name="ShapeManager_CenterPoints" xml:space="preserve">
<value>Центральных точек:</value>
</data>
<data name="ShapeManager_ArrowsOnBothEnds" xml:space="preserve">
<value>Стрелки на обоих концах</value>
</data>
<data name="ShapeManager_CreateToolbar_Image" xml:space="preserve">
<value>Изображение</value>
</data>
<data name="ShapeManager_CreateToolbar_ImageSize" xml:space="preserve">
<value>Размер изображения...</value>
</data>
<data name="ShapeManager_CreateToolbar_CanvasSize" xml:space="preserve">
<value>Размер полотна...</value>
</data>
<data name="ShapeManager_CreateToolbar_Rotate90Clockwise" xml:space="preserve">
<value>Повернуть на 90° по часовой стрелке</value>
</data>
<data name="ShapeManager_CreateToolbar_Rotate90CounterClockwise" xml:space="preserve">
<value>Повернуть на 90° против часовой стрелки</value>
</data>
<data name="ShapeManager_CreateToolbar_Rotate180" xml:space="preserve">
<value>Повернуть на 180°</value>
</data>
<data name="ShapeManager_CreateToolbar_FlipHorizontal" xml:space="preserve">
<value>Отразить по горизонтали</value>
</data>
<data name="ShapeManager_CreateToolbar_FlipVertical" xml:space="preserve">
<value>Отразить по вертикали</value>
</data>
<data name="ShapeManager_CreateToolbar_StartEditorMaximized" xml:space="preserve">
<value>Разворачивать редактор на весь экран</value>
</data>
<data name="ShapeManager_CreateToolbar_RememberEditorWindowState" xml:space="preserve">
<value>Помнить состояние окна редактора</value>
</data>
<data name="ShapeManager_CreateToolbar_StartEditorFullscreen" xml:space="preserve">
<value>Запускать редактор в полноэкранном режиме</value>
</data>
</root>

View file

@ -68,7 +68,7 @@ internal void CreateToolbar()
Location = new Point(200, 200),
ShowInTaskbar = false,
StartPosition = FormStartPosition.Manual,
Text = "ShareX - Annotate menu",
Text = "ShareX - " + Resources.ShapeManager_CreateToolbar_AnnotateMenu,
TopMost = form.IsFullscreen
};
@ -479,7 +479,7 @@ internal void CreateToolbar()
};
tsddbShapeOptions.DropDownItems.Add(tslnudCornerRadius);
tscbCursorTypes = new ToolStripLabeledComboBox("Cursor type:");
tscbCursorTypes = new ToolStripLabeledComboBox(Resources.ShapeManager_CursorType);
CursorConverter cursorConverter = new CursorConverter();
foreach (Cursor cursor in Helpers.CursorList)
{
@ -510,7 +510,7 @@ internal void CreateToolbar()
};
tsddbShapeOptions.DropDownItems.Add(tslnudPixelateSize);
tslnudCenterPoints = new ToolStripLabeledNumericUpDown("Center points:");
tslnudCenterPoints = new ToolStripLabeledNumericUpDown(Resources.ShapeManager_CenterPoints);
tslnudCenterPoints.Content.Minimum = 0;
tslnudCenterPoints.Content.Maximum = LineDrawingShape.MaximumCenterPointCount;
tslnudCenterPoints.Content.ValueChanged = (sender, e) =>
@ -520,7 +520,7 @@ internal void CreateToolbar()
};
tsddbShapeOptions.DropDownItems.Add(tslnudCenterPoints);
tsmiArrowHeadsBothSide = new ToolStripMenuItem("Arrows on both ends");
tsmiArrowHeadsBothSide = new ToolStripMenuItem(Resources.ShapeManager_ArrowsOnBothEnds);
tsmiArrowHeadsBothSide.CheckOnClick = true;
tsmiArrowHeadsBothSide.Click += (sender, e) =>
{
@ -603,46 +603,46 @@ internal void CreateToolbar()
{
#region Image
ToolStripDropDownButton tsddbImage = new ToolStripDropDownButton("Image");
ToolStripDropDownButton tsddbImage = new ToolStripDropDownButton(Resources.ShapeManager_CreateToolbar_Image);
tsddbImage.DisplayStyle = ToolStripItemDisplayStyle.Image;
tsddbImage.Image = Resources.image__pencil;
tsMain.Items.Add(tsddbImage);
ToolStripMenuItem tsmiImageSize = new ToolStripMenuItem("Image size...");
ToolStripMenuItem tsmiImageSize = new ToolStripMenuItem(Resources.ShapeManager_CreateToolbar_ImageSize);
tsmiImageSize.Image = Resources.image_resize;
tsmiImageSize.MouseDown += (sender, e) => ChangeImageSize();
tsddbImage.DropDownItems.Add(tsmiImageSize);
ToolStripMenuItem tsmiCanvasSize = new ToolStripMenuItem("Canvas size...");
ToolStripMenuItem tsmiCanvasSize = new ToolStripMenuItem(Resources.ShapeManager_CreateToolbar_CanvasSize);
tsmiCanvasSize.Image = Resources.image_resize_actual;
tsmiCanvasSize.MouseDown += (sender, e) => ChangeCanvasSize();
tsddbImage.DropDownItems.Add(tsmiCanvasSize);
tsddbImage.DropDownItems.Add(new ToolStripSeparator());
ToolStripMenuItem tsmiRotate90Clockwise = new ToolStripMenuItem("Rotate 90° clockwise");
ToolStripMenuItem tsmiRotate90Clockwise = new ToolStripMenuItem(Resources.ShapeManager_CreateToolbar_Rotate90Clockwise);
tsmiRotate90Clockwise.Image = Resources.arrow_circle;
tsmiRotate90Clockwise.MouseDown += (sender, e) => RotateImage(RotateFlipType.Rotate90FlipNone);
tsddbImage.DropDownItems.Add(tsmiRotate90Clockwise);
ToolStripMenuItem tsmiRotate90CounterClockwise = new ToolStripMenuItem("Rotate 90° counter clockwise");
ToolStripMenuItem tsmiRotate90CounterClockwise = new ToolStripMenuItem(Resources.ShapeManager_CreateToolbar_Rotate90CounterClockwise);
tsmiRotate90CounterClockwise.Image = Resources.arrow_circle_135_left;
tsmiRotate90CounterClockwise.MouseDown += (sender, e) => RotateImage(RotateFlipType.Rotate270FlipNone);
tsddbImage.DropDownItems.Add(tsmiRotate90CounterClockwise);
ToolStripMenuItem tsmiRotate180 = new ToolStripMenuItem("Rotate 180°");
ToolStripMenuItem tsmiRotate180 = new ToolStripMenuItem(Resources.ShapeManager_CreateToolbar_Rotate180);
tsmiRotate180.Image = Resources.arrow_circle_double;
tsmiRotate180.MouseDown += (sender, e) => RotateImage(RotateFlipType.Rotate180FlipNone);
tsddbImage.DropDownItems.Add(tsmiRotate180);
tsddbImage.DropDownItems.Add(new ToolStripSeparator());
ToolStripMenuItem tsmiFlipHorizontal = new ToolStripMenuItem("Flip horizontal");
ToolStripMenuItem tsmiFlipHorizontal = new ToolStripMenuItem(Resources.ShapeManager_CreateToolbar_FlipHorizontal);
tsmiFlipHorizontal.Image = Resources.layer_flip;
tsmiFlipHorizontal.MouseDown += (sender, e) => RotateImage(RotateFlipType.RotateNoneFlipX);
tsddbImage.DropDownItems.Add(tsmiFlipHorizontal);
ToolStripMenuItem tsmiFlipVertical = new ToolStripMenuItem("Flip vertical");
ToolStripMenuItem tsmiFlipVertical = new ToolStripMenuItem(Resources.ShapeManager_CreateToolbar_FlipVertical);
tsmiFlipVertical.Image = Resources.layer_flip_vertical;
tsmiFlipVertical.MouseDown += (sender, e) => RotateImage(RotateFlipType.RotateNoneFlipY);
tsddbImage.DropDownItems.Add(tsmiFlipVertical);
@ -724,19 +724,19 @@ internal void CreateToolbar()
if (form.IsEditorMode)
{
ToolStripMenuItem tsmiEditorModeStartMaximized = new ToolStripMenuItem("Start editor maximized");
ToolStripMenuItem tsmiEditorModeStartMaximized = new ToolStripMenuItem(Resources.ShapeManager_CreateToolbar_StartEditorMaximized);
tsmiEditorModeStartMaximized.Checked = Config.EditorModeStartMaximized;
tsmiEditorModeStartMaximized.CheckOnClick = true;
tsmiEditorModeStartMaximized.Click += (sender, e) => Config.EditorModeStartMaximized = tsmiEditorModeStartMaximized.Checked;
tsddbOptions.DropDownItems.Add(tsmiEditorModeStartMaximized);
ToolStripMenuItem tsmiEditorModeRememberWindowState = new ToolStripMenuItem("Remember editor window state");
ToolStripMenuItem tsmiEditorModeRememberWindowState = new ToolStripMenuItem(Resources.ShapeManager_CreateToolbar_RememberEditorWindowState);
tsmiEditorModeRememberWindowState.Checked = Config.EditorModeRememberWindowState;
tsmiEditorModeRememberWindowState.CheckOnClick = true;
tsmiEditorModeRememberWindowState.Click += (sender, e) => Config.EditorModeRememberWindowState = tsmiEditorModeRememberWindowState.Checked;
tsddbOptions.DropDownItems.Add(tsmiEditorModeRememberWindowState);
ToolStripMenuItem tsmiEditorModeFullscreen = new ToolStripMenuItem("Start editor fullscreen");
ToolStripMenuItem tsmiEditorModeFullscreen = new ToolStripMenuItem(Resources.ShapeManager_CreateToolbar_StartEditorFullscreen);
tsmiEditorModeFullscreen.Checked = Config.EditorModeFullscreen;
tsmiEditorModeFullscreen.CheckOnClick = true;
tsmiEditorModeFullscreen.Click += (sender, e) => Config.EditorModeFullscreen = tsmiEditorModeFullscreen.Checked;

View file

@ -276,12 +276,18 @@
<EmbeddedResource Include="Forms\CanvasSizeForm.resx">
<DependentUpon>CanvasSizeForm.cs</DependentUpon>
</EmbeddedResource>
<EmbeddedResource Include="Forms\CanvasSizeForm.ru.resx">
<DependentUpon>CanvasSizeForm.cs</DependentUpon>
</EmbeddedResource>
<EmbeddedResource Include="Forms\FFmpegOptionsForm.it-IT.resx">
<DependentUpon>FFmpegOptionsForm.cs</DependentUpon>
</EmbeddedResource>
<EmbeddedResource Include="Forms\ImageSizeForm.resx">
<DependentUpon>ImageSizeForm.cs</DependentUpon>
</EmbeddedResource>
<EmbeddedResource Include="Forms\ImageSizeForm.ru.resx">
<DependentUpon>ImageSizeForm.cs</DependentUpon>
</EmbeddedResource>
<EmbeddedResource Include="Forms\ScrollingCaptureForm.de.resx">
<DependentUpon>ScrollingCaptureForm.cs</DependentUpon>
</EmbeddedResource>

View file

@ -3303,16 +3303,14 @@ private object eiCustomUploaders_ExportRequested()
{
if (string.IsNullOrEmpty(uploader.RequestURL))
{
// TODO: Translate
MessageBox.Show("\"Request URL\" must be configured.", "ShareX - " + Resources.UploadersConfigForm_Error,
MessageBox.Show(Resources.UploadersConfigForm_eiCustomUploaders_ExportRequested_RequestURLMustBeConfigured, "ShareX - " + Resources.UploadersConfigForm_Error,
MessageBoxButtons.OK, MessageBoxIcon.Error);
return null;
}
if (uploader.DestinationType == CustomUploaderDestinationType.None)
{
// TODO: Translate
MessageBox.Show("\"Destination type\" must be configured.", "ShareX - " + Resources.UploadersConfigForm_Error,
MessageBox.Show(Resources.UploadersConfigForm_eiCustomUploaders_ExportRequested_DestinationTypeMustBeConfigured, "ShareX - " + Resources.UploadersConfigForm_Error,
MessageBoxButtons.OK, MessageBoxIcon.Error);
return null;
}

View file

@ -291,7 +291,7 @@ store.book[0].title</value>
<value>URL миниатюры:</value>
</data>
<data name="lblCustomUploaderFileForm.Text" xml:space="preserve">
<value>Файл из имени:</value>
<value>Имя формы с файлом:</value>
</data>
<data name="lblCustomUploaderRequestType.Text" xml:space="preserve">
<value>Тип запроса:</value>
@ -1175,4 +1175,10 @@ store.book[0].title</value>
<data name="lblAmazonS3StorageClass.Text" xml:space="preserve">
<value>Класс хранилища:</value>
</data>
<data name="btnPaste_eeGetUserKey.Text" xml:space="preserve">
<value>Получить пользовательский ключ...</value>
</data>
<data name="cbFlickrDirectLink.Text" xml:space="preserve">
<value>Использовать прямую ссылку</value>
</data>
</root>

View file

@ -24,6 +24,7 @@ You should have received a copy of the GNU General Public License
#endregion License Information (GPL v3)
using ShareX.HelpersLib;
using ShareX.UploadersLib.Properties;
using System;
using System.Collections.Generic;
using System.Collections.Specialized;
@ -132,8 +133,7 @@ public string GetRequestURL()
{
if (string.IsNullOrEmpty(RequestURL))
{
// TODO: Translate
throw new Exception("\"Request URL\" must be configured.");
throw new Exception(Resources.CustomUploaderItem_GetRequestURL_RequestURLMustBeConfigured);
}
string url = ParseURL(RequestURL, false);
@ -145,8 +145,7 @@ public string GetFileFormName()
{
if (string.IsNullOrEmpty(FileFormName))
{
// TODO: Translate
throw new Exception("\"File form name\" must be configured.");
throw new Exception(Resources.CustomUploaderItem_GetFileFormName_FileFormNameMustBeConfigured);
}
return FileFormName;

View file

@ -148,6 +148,24 @@ internal static string CustomFileUploader_Upload_Response_parse_failed_ {
}
}
/// <summary>
/// Looks up a localized string similar to &quot;File form name&quot; must be configured..
/// </summary>
internal static string CustomUploaderItem_GetFileFormName_FileFormNameMustBeConfigured {
get {
return ResourceManager.GetString("CustomUploaderItem_GetFileFormName_FileFormNameMustBeConfigured", resourceCulture);
}
}
/// <summary>
/// Looks up a localized string similar to &quot;Request URL&quot; must be configured..
/// </summary>
internal static string CustomUploaderItem_GetRequestURL_RequestURLMustBeConfigured {
get {
return ResourceManager.GetString("CustomUploaderItem_GetRequestURL_RequestURLMustBeConfigured", resourceCulture);
}
}
/// <summary>
/// Looks up a localized resource of type System.Drawing.Bitmap.
/// </summary>
@ -741,6 +759,25 @@ internal static string UploadersConfigForm_ConnectSFTPAccount_Key_file_not_found
}
}
/// <summary>
/// Looks up a localized string similar to &quot;Destination type&quot; must be configured..
/// </summary>
internal static string UploadersConfigForm_eiCustomUploaders_ExportRequested_DestinationTypeMustBeConfigured {
get {
return ResourceManager.GetString("UploadersConfigForm_eiCustomUploaders_ExportRequested_DestinationTypeMustBeConfig" +
"ured", resourceCulture);
}
}
/// <summary>
/// Looks up a localized string similar to &quot;Request URL&quot; must be configured..
/// </summary>
internal static string UploadersConfigForm_eiCustomUploaders_ExportRequested_RequestURLMustBeConfigured {
get {
return ResourceManager.GetString("UploadersConfigForm_eiCustomUploaders_ExportRequested_RequestURLMustBeConfigured", resourceCulture);
}
}
/// <summary>
/// Looks up a localized string similar to Error.
/// </summary>

View file

@ -398,4 +398,16 @@ Created folders:</value>
<data name="UploadersConfigForm_ConnectSFTPAccount_Key_file_not_found" xml:space="preserve">
<value>Key file does not exist.</value>
</data>
<data name="UploadersConfigForm_eiCustomUploaders_ExportRequested_RequestURLMustBeConfigured" xml:space="preserve">
<value>"Request URL" must be configured.</value>
</data>
<data name="UploadersConfigForm_eiCustomUploaders_ExportRequested_DestinationTypeMustBeConfigured" xml:space="preserve">
<value>"Destination type" must be configured.</value>
</data>
<data name="CustomUploaderItem_GetRequestURL_RequestURLMustBeConfigured" xml:space="preserve">
<value>"Request URL" must be configured.</value>
</data>
<data name="CustomUploaderItem_GetFileFormName_FileFormNameMustBeConfigured" xml:space="preserve">
<value>"File form name" must be configured.</value>
</data>
</root>

View file

@ -247,4 +247,16 @@
<data name="UploadersConfigForm_ConnectSFTPAccount_Key_file_not_found" xml:space="preserve">
<value>Файл ключа не существует.</value>
</data>
<data name="UploadersConfigForm_eiCustomUploaders_ExportRequested_RequestURLMustBeConfigured" xml:space="preserve">
<value>"URL запроса" должен быть настроен.</value>
</data>
<data name="UploadersConfigForm_eiCustomUploaders_ExportRequested_DestinationTypeMustBeConfigured" xml:space="preserve">
<value>"Тип сервиса" должен быть настроен.</value>
</data>
<data name="CustomUploaderItem_GetRequestURL_RequestURLMustBeConfigured" xml:space="preserve">
<value>"URL запроса" должен быть настроен.</value>
</data>
<data name="CustomUploaderItem_GetFileFormName_FileFormNameMustBeConfigured" xml:space="preserve">
<value>"Имя формы с файлом" должно быть настроено.</value>
</data>
</root>

View file

@ -705,4 +705,10 @@
<data name="pbDiscordOpen.ToolTip" xml:space="preserve">
<value>Открыть приглашение на Discord сервер ShareX</value>
</data>
<data name="tsmiTrayImageEditor.Text" xml:space="preserve">
<value>Редактор изображений...</value>
</data>
<data name="tsmiImageEditor.Text" xml:space="preserve">
<value>Редактор изображений...</value>
</data>
</root>