Jelajahi Sumber

compdfkit(win) - 文案走查->修复

weixiangjie 1 tahun lalu
induk
melakukan
78a9fbd59e
42 mengubah file dengan 438 tambahan dan 131 penghapusan
  1. 1 1
      Demo/Examples/Compdfkit_Tools/Annotation/PDFAnnotationPanel/PDFAnnotationUI/CPDFNoteUI.xaml
  2. 1 1
      Demo/Examples/Compdfkit_Tools/Annotation/PDFAnnotationPanel/PDFAnnotationUI/CPDFShapeUI.xaml
  3. 1 0
      Demo/Examples/Compdfkit_Tools/Common/BarControl/CPDFTitleBarControl.xaml
  4. 5 0
      Demo/Examples/Compdfkit_Tools/Common/BarControl/CPDFTitleBarControl.xaml.cs
  5. 1 1
      Demo/Examples/Compdfkit_Tools/DigitalSignature/AddCertificationControl/AddCertificationDialog.xaml.cs
  6. 2 2
      Demo/Examples/Compdfkit_Tools/DigitalSignature/AddCertificationControl/AddCustomCertificationControl.xaml
  7. 3 3
      Demo/Examples/Compdfkit_Tools/DigitalSignature/AddCertificationControl/AddExistedCertificationControl.xaml
  8. 4 4
      Demo/Examples/Compdfkit_Tools/DigitalSignature/AddCertificationControl/SaveCertificateControl.xaml
  9. 14 14
      Demo/Examples/Compdfkit_Tools/DigitalSignature/FillDigitalSignatureControl/FillDigitalSignatureControl.xaml
  10. 1 1
      Demo/Examples/Compdfkit_Tools/DigitalSignature/VerifyDigitalSignatureControl/DigitalSignatureValiditySummaaryControl.xaml
  11. 6 6
      Demo/Examples/Compdfkit_Tools/Edit/ContentEditCOntrol/ContentEditControl.xaml.cs
  12. 7 3
      Demo/Examples/Compdfkit_Tools/Edit/PDFImageEdit/PDFImageEditControl/PDFImageEditControl.xaml
  13. 1 1
      Demo/Examples/Compdfkit_Tools/Edit/PDFTextEdit/PDFTextEditUI/CPDFTextStyleUI.xaml
  14. 1 1
      Demo/Examples/Compdfkit_Tools/Form/Property/ListBoxProperty.xaml
  15. 2 2
      Demo/Examples/Compdfkit_Tools/Form/Property/PushButtonProperty.xaml
  16. 30 1
      Demo/Examples/Compdfkit_Tools/Form/Property/PushButtonProperty.xaml.cs
  17. 1 1
      Demo/Examples/Compdfkit_Tools/Form/Property/TextFieldProperty.xaml
  18. 1 1
      Demo/Examples/Compdfkit_Tools/PDFView/PDFSearch/PDFSearchControl/CPDFSearchControl.xaml.cs
  19. 3 1
      Demo/Examples/Compdfkit_Tools/PageEdit/PDFPageEdit/CPDFPageEditControl.xaml.cs
  20. 1 0
      Demo/Examples/Compdfkit_Tools/PageEdit/PDFPageExtract/CPDFPageExtractWindow.xaml.cs
  21. 4 4
      Demo/Examples/Compdfkit_Tools/PageEdit/PDFPageInsert/CPDFPageInsertUI.xaml
  22. 1 0
      Demo/Examples/Compdfkit_Tools/PageEdit/PDFPageInsert/CPDFPageInsertWindow.xaml.cs
  23. 1 1
      Demo/Examples/Compdfkit_Tools/Security/Encryption/DecryptionDialog.xaml
  24. 1 1
      Demo/Examples/Compdfkit_Tools/Security/Encryption/EncryptionDialog.xaml
  25. 1 1
      Demo/Examples/Compdfkit_Tools/Security/Encryption/FileGridListControl.xaml.cs
  26. 54 1
      Demo/Examples/Compdfkit_Tools/Strings/Common.Designer.cs
  27. 18 0
      Demo/Examples/Compdfkit_Tools/Strings/Common.resx
  28. 19 1
      Demo/Examples/Compdfkit_Tools/Strings/Common.zh.resx
  29. 10 1
      Demo/Examples/Compdfkit_Tools/Strings/DocEditor.Designer.cs
  30. 4 1
      Demo/Examples/Compdfkit_Tools/Strings/DocEditor.resx
  31. 4 1
      Demo/Examples/Compdfkit_Tools/Strings/DocEditor.zh.resx
  32. 2 2
      Demo/Examples/Compdfkit_Tools/Strings/PropertyPanel.Designer.cs
  33. 2 2
      Demo/Examples/Compdfkit_Tools/Strings/PropertyPanel.resx
  34. 38 3
      Demo/Examples/Compdfkit_Tools/Strings/Security.Designer.cs
  35. 14 2
      Demo/Examples/Compdfkit_Tools/Strings/Security.resx
  36. 9 0
      Demo/Examples/Compdfkit_Tools/Strings/Security.zh.resx
  37. 87 33
      Demo/Examples/Compdfkit_Tools/Strings/Signature.Designer.cs
  38. 43 25
      Demo/Examples/Compdfkit_Tools/Strings/Signature.resx
  39. 20 2
      Demo/Examples/Compdfkit_Tools/Strings/Signature.zh.resx
  40. 2 1
      Demo/Examples/Compdfkit_Tools/Watermark/AddWatermark/WatermarkListDialog.xaml.cs
  41. 16 4
      Demo/Examples/Compdfkit_Tools/Watermark/RemoveWatermark/RemoveWatermarkListControl.xaml
  42. 2 1
      Demo/Examples/Compdfkit_Tools/Watermark/RemoveWatermark/RemoveWatermarkListDialog.xaml.cs

+ 1 - 1
Demo/Examples/Compdfkit_Tools/Annotation/PDFAnnotationPanel/PDFAnnotationUI/CPDFNoteUI.xaml

@@ -25,7 +25,7 @@
                     <cpdftools:CPDFAnnotationPreviewerControl x:Name="CPDFAnnotationPreviewerControl" Height="100" Margin="16"></cpdftools:CPDFAnnotationPreviewerControl>
                 </StackPanel>
                 <StackPanel Height="75" Margin="5">
-                    <TextBlock Text="{Binding Converter={StaticResource PropertyPanelResourceConverter},ConverterParameter=Property_StrokeColor}"></TextBlock>
+                    <TextBlock Text="{Binding Converter={StaticResource PropertyPanelResourceConverter},ConverterParameter=Property_Color}"></TextBlock>
                     <cpdfcommon:ColorPickerControl x:Name="ColorPickerControl" TransparentBtnProperty="Collapsed"></cpdfcommon:ColorPickerControl>
                 </StackPanel>
                 <StackPanel Height="200" Margin="5">

+ 1 - 1
Demo/Examples/Compdfkit_Tools/Annotation/PDFAnnotationPanel/PDFAnnotationUI/CPDFShapeUI.xaml

@@ -47,7 +47,7 @@
                 <StackPanel x:Name="ArrowStackPanel" Visibility="Visible" Height="75"  Margin="5">
                     <StackPanel Orientation="Horizontal" Margin="0,0,0,10">
                         <TextBlock Text="{Binding Converter={StaticResource PropertyPanelResourceConverter},ConverterParameter=Property_Start}"></TextBlock>
-                        <TextBlock Text=" / "></TextBlock>
+                        <TextBlock Text="&amp;" Margin="2,0,2,0"></TextBlock>
                         <TextBlock Text="{Binding Converter={StaticResource PropertyPanelResourceConverter},ConverterParameter=Property_End}"></TextBlock>
                     </StackPanel>
                     <cpdfcommon:CPDFArrowControl x:Name="CPDFArrowControl"></cpdfcommon:CPDFArrowControl>

+ 1 - 0
Demo/Examples/Compdfkit_Tools/Common/BarControl/CPDFTitleBarControl.xaml

@@ -32,6 +32,7 @@
                     <MenuItem Header="{Binding Converter={StaticResource CommonResourceConverter},ConverterParameter=Menu_Help}" Style="{StaticResource Dropdown_MenuItem}">
                         <MenuItem Header="{Binding Converter={StaticResource CommonResourceConverter},ConverterParameter=HelpMenu_About}" Style="{StaticResource Sub_MenuItem}" Click="AboutUsItem_Click"></MenuItem>
                         <MenuItem Header="{Binding Converter={StaticResource CommonResourceConverter},ConverterParameter=HelpMenu_Contact}" Style="{StaticResource Sub_MenuItem}" Click="ContactUs_Click"></MenuItem>
+                        <MenuItem Header="{Binding Converter={StaticResource CommonResourceConverter},ConverterParameter=HelpMenu_Support}" Style="{StaticResource Sub_MenuItem}" Click="TechnicalSupport_Click"></MenuItem>
                         <MenuItem Header="{Binding Converter={StaticResource CommonResourceConverter},ConverterParameter=HelpMenu_Privacy}" Style="{StaticResource Sub_MenuItem}" Click="PrivacyAgreement_Click"></MenuItem>
                         <MenuItem Header="{Binding Converter={StaticResource CommonResourceConverter},ConverterParameter=HelpMenu_Service}" Style="{StaticResource Sub_MenuItem}" Click="ServiceTerms_Click"></MenuItem>
                         <MenuItem Header="{Binding Converter={StaticResource CommonResourceConverter},ConverterParameter=HelpMenu_DeviceID}" Style="{StaticResource Sub_MenuItem}" Click="DeviceSerial_Click"></MenuItem>

+ 5 - 0
Demo/Examples/Compdfkit_Tools/Common/BarControl/CPDFTitleBarControl.xaml.cs

@@ -61,6 +61,11 @@ namespace Compdfkit_Tools.PDFControl
         {
             System.Diagnostics.Process.Start("https://www.compdf.com/contact-sales");
         }
+        
+        private void TechnicalSupport_Click(object sender, RoutedEventArgs e)
+        {
+            System.Diagnostics.Process.Start("https://www.compdf.com/support");
+        }
 
         private void PrivacyAgreement_Click(object sender, RoutedEventArgs e)
         {

+ 1 - 1
Demo/Examples/Compdfkit_Tools/DigitalSignature/AddCertificationControl/AddCertificationDialog.xaml.cs

@@ -26,7 +26,7 @@ namespace Compdfkit_Tools.PDFControl
 
         private string addCertificationControlTitle = Helper.LanguageHelper.SigManager.GetString("Title_AddDigitalSign");
         private string addExistedCertificationControlTitle = Helper.LanguageHelper.SigManager.GetString("Title_AddID");
-        private string addCustomCertificationControlTitle = Helper.LanguageHelper.SigManager.GetString("Title_SignAp");
+        private string addCustomCertificationControlTitle = Helper.LanguageHelper.SigManager.GetString("Title_SigInfo");
         private string saveCertificateTitle = Helper.LanguageHelper.SigManager.GetString("Title_Save");
 
         public event EventHandler<CertificateAccess> FillSignatureEvent;

+ 2 - 2
Demo/Examples/Compdfkit_Tools/DigitalSignature/AddCertificationControl/AddCustomCertificationControl.xaml

@@ -19,7 +19,7 @@
             <RowDefinition></RowDefinition>
         </Grid.RowDefinitions>
         <Grid Background="#ffffff"  Margin="20,0,0,0"  Panel.ZIndex="1" Height="20" HorizontalAlignment="Left" VerticalAlignment="Top">
-            <TextBlock Text="{Binding Converter={StaticResource SigResourceConverter},ConverterParameter=Title_SigInfo}" FontWeight="Bold" FontSize="16"></TextBlock>
+            <TextBlock Text="{Binding Converter={StaticResource SigResourceConverter},ConverterParameter=Title_CreateID}" FontWeight="Bold" FontSize="16"></TextBlock>
         </Grid>
         <Border Margin="12" BorderBrush="#33000000" BorderThickness="1">
             <Grid Margin="10">
@@ -63,7 +63,7 @@
                 </Grid>
                 <TextBlock Grid.Row="4" Text="{Binding Converter={StaticResource SigResourceConverter},ConverterParameter=Tip_Country}" VerticalAlignment="Center"></TextBlock>
                 <Grid Grid.Column="1" Grid.Row="4">
-                    <ComboBox Margin="0,5,0,5" Name="AreaCmb" SelectedIndex="0" SelectionChanged="AreaCmb_SelectionChanged"></ComboBox>
+                    <ComboBox VerticalContentAlignment="Center" Margin="0,5,0,5" Name="AreaCmb" SelectedIndex="0" SelectionChanged="AreaCmb_SelectionChanged"></ComboBox>
                 </Grid>
                 <TextBlock Grid.Row="5" Text="{Binding Converter={StaticResource SigResourceConverter},ConverterParameter=Tip_Use}" VerticalAlignment="Center"></TextBlock>
                 <Grid Grid.Column="1" Grid.Row="5">

+ 3 - 3
Demo/Examples/Compdfkit_Tools/DigitalSignature/AddCertificationControl/AddExistedCertificationControl.xaml

@@ -22,12 +22,12 @@
                    Text="{Binding Converter={StaticResource SigResourceConverter},ConverterParameter=Tip_AddID}">
         </TextBlock>
         <StackPanel Grid.Row="1" Orientation="Horizontal" Margin="10,0,10,8">
-            <TextBlock Text="{Binding Converter={StaticResource SigResourceConverter},ConverterParameter=Tip_Cert}" Foreground="#43474D" FontSize="14" VerticalAlignment="Center" Margin="10,0,10,0" HorizontalAlignment="Left" Width="88" FontFamily="Microsoft YaHei"></TextBlock>
+            <TextBlock Text="{Binding Converter={StaticResource SigResourceConverter},ConverterParameter=Tip_Cert}" Width="92" Foreground="#43474D" FontSize="14" VerticalAlignment="Center" Margin="10,0,10,0" HorizontalAlignment="Left" FontFamily="Microsoft YaHei"></TextBlock>
             <Grid IsEnabled="{Binding InputEnable}">
                 <TextBox Width="238" Height="28"  x:Name="FileNameTxt" VerticalContentAlignment="Center" VerticalAlignment="Center" IsReadOnly="True" TextChanged="FileNameTxt_OnTextChanged"/>
                 <TextBlock Text="{Binding Converter={StaticResource SigResourceConverter},ConverterParameter=Holder_Path}" Margin="8" VerticalAlignment="Center"   Visibility="{Binding ElementName=FileNameTxt, Path=Text, Converter={StaticResource TextLengthToVisibilityConverter}}" IsHitTestVisible="False"  Foreground="#BBB"></TextBlock>
             </Grid>
-            <Button x:Name="SelectFileBtn" Content="{Binding Converter={StaticResource SigResourceConverter},ConverterParameter=Button_Upload}" Width="90" Height="28" FontSize="14" FontFamily="Microsoft YaHei" Margin="8,0,0,0" Click="SelectFileBtn_Click"></Button>
+            <Button x:Name="SelectFileBtn" Content="{Binding Converter={StaticResource SigResourceConverter},ConverterParameter=Button_Upload}" Padding="5,0,5,0"  Height="28" FontSize="14" FontFamily="Microsoft YaHei" Margin="8,0,0,0" Click="SelectFileBtn_Click"></Button>
         </StackPanel>
         <StackPanel Grid.Row="2" Orientation="Horizontal"  Margin="10,0,0,8">
             <TextBlock Foreground="#43474D" Width="88" FontSize="14" FontFamily="Microsoft YaHei" Text="{Binding Converter={StaticResource SigResourceConverter},ConverterParameter=Tip_Password}" VerticalAlignment="Top" Margin="10,5,10,0"></TextBlock>
@@ -42,7 +42,7 @@
         <Grid Grid.Row="3">
             <StackPanel  Orientation="Horizontal" HorizontalAlignment="Right" VerticalAlignment="Bottom" Margin="24">
                 <Button x:Name="CancelBtn" Content="{Binding Converter={StaticResource SigResourceConverter},ConverterParameter=Button_Cancel}"  Margin="0,0,10,0" Width="112" Height="32" BorderThickness="1" Click="CancelBtn_Click"></Button>
-                <Button x:Name="DoneBtn" Content="{Binding Converter={StaticResource SigResourceConverter},ConverterParameter=Button_OK}" Width="112" Height="32" BorderThickness="1" IsEnabled="{Binding CanContinue}" Click="DoneBtn_Click"></Button>
+                <Button x:Name="DoneBtn" Content="{Binding Converter={StaticResource SigResourceConverter},ConverterParameter=Button_Continue}" Width="112" Height="32" BorderThickness="1" IsEnabled="{Binding CanContinue}" Click="DoneBtn_Click"></Button>
             </StackPanel>
         </Grid> 
     </Grid>

+ 4 - 4
Demo/Examples/Compdfkit_Tools/DigitalSignature/AddCertificationControl/SaveCertificateControl.xaml

@@ -21,10 +21,10 @@
             <RowDefinition></RowDefinition>
         </Grid.RowDefinitions>
         <TextBlock TextWrapping="Wrap" FontSize="14" Foreground="#000000" Margin="10,20,10,20" Height="40"
-                   Text="{Binding Converter={StaticResource SigResourceConverter},ConverterParameter=Title_Save}">
+                   Text="{Binding Converter={StaticResource SigResourceConverter},ConverterParameter=Title_SaveSig}">
         </TextBlock>
         <StackPanel Grid.Row="1" Orientation="Horizontal" Margin="10,0,0,8">
-            <TextBlock Text="{Binding Converter={StaticResource SigResourceConverter},ConverterParameter=Tip_Save}" Foreground="#43474D" FontSize="14" VerticalAlignment="Center" Margin="10,0,10,0" HorizontalAlignment="Left" Width="135" FontFamily="Microsoft YaHei"></TextBlock>
+            <TextBlock Text="{Binding Converter={StaticResource SigResourceConverter},ConverterParameter=Tip_Save}" Foreground="#43474D" FontSize="14" VerticalAlignment="Center" Margin="10,0,10,0" HorizontalAlignment="Left" Width="148" FontFamily="Microsoft YaHei"></TextBlock>
             <Grid>
                 <TextBox Width="258" Height="28"  x:Name="FileNameText" VerticalContentAlignment="Center" VerticalAlignment="Center" IsReadOnly="True" Text="{Binding FilePath, Mode =TwoWay}"/>
                 <TextBlock Text="{Binding Converter={StaticResource SigResourceConverter},ConverterParameter=Holder_SelectFile}" Margin="8" VerticalAlignment="Center"   Visibility="{Binding ElementName=FileNameText, Path=Text, Converter={StaticResource TextLengthToVisibilityConverter}}" IsHitTestVisible="False"  Foreground="#BBB"></TextBlock>
@@ -32,7 +32,7 @@
             <Button x:Name="SelectFileBtn" Content="{Binding Converter={StaticResource SigResourceConverter},ConverterParameter=Button_Browse}" Width="90" Height="28" FontSize="14" FontFamily="Microsoft YaHei" Margin="8,0,0,0" Click="SelectFileBtn_Click"></Button>
         </StackPanel>
         <StackPanel Grid.Row="2" Orientation="Horizontal"  Margin="10,0,0,8">
-            <TextBlock Foreground="#43474D" Width="135" FontSize="14" FontFamily="Microsoft YaHei" Text="{Binding Converter={StaticResource SigResourceConverter},ConverterParameter=Tip_SetPassword}" VerticalAlignment="Top" Margin="10,5,10,0"></TextBlock>
+            <TextBlock Foreground="#43474D" Width="148" FontSize="14" FontFamily="Microsoft YaHei" Text="{Binding Converter={StaticResource SigResourceConverter},ConverterParameter=Tip_SetPassword}" VerticalAlignment="Top" Margin="10,5,10,0"></TextBlock>
             <Grid>
                 <PasswordBox Name="SetPasswordPbx" Padding="5,0,0,0" Width="258" Height="28" VerticalContentAlignment="Center" VerticalAlignment="Center" PasswordChanged="SetPasswordPbx_OnPasswordChanged"></PasswordBox>
                 <TextBlock x:Name="PasswordTextBlock" Text="{Binding Converter={StaticResource SigResourceConverter},ConverterParameter=Holder_SetPassword}" Margin="8" VerticalAlignment="Center" IsHitTestVisible="False" Foreground="#BBB"></TextBlock>
@@ -40,7 +40,7 @@
 
         </StackPanel>
         <StackPanel Grid.Row="3" Orientation="Horizontal"  Margin="10,0,0,8">
-            <TextBlock Foreground="#43474D" Width="135" FontSize="14" FontFamily="Microsoft YaHei" Text="{Binding Converter={StaticResource SigResourceConverter},ConverterParameter=Tip_Confirm}" VerticalAlignment="Top" Margin="10,5,10,0"></TextBlock>
+            <TextBlock Width="148" Foreground="#43474D" FontSize="14" FontFamily="Microsoft YaHei" Text="{Binding Converter={StaticResource SigResourceConverter},ConverterParameter=Tip_Confirm}" VerticalAlignment="Top" Margin="10,5,10,0"></TextBlock>
             <Grid>
                 <PasswordBox Name="ConfirmPasswordPbx" Padding="5,0,0,0" Width="258" Height="28"  VerticalContentAlignment="Center" VerticalAlignment="Center" PasswordChanged="ConfirmPasswordPbx_OnPasswordChanged"></PasswordBox>
                 <TextBlock x:Name="ConfirmPasswordTextBlock" Text="{Binding Converter={StaticResource SigResourceConverter},ConverterParameter=Holder_ConfirmPassword}" Margin="8" VerticalAlignment="Center" IsHitTestVisible="False" Foreground="#BBB"></TextBlock>

+ 14 - 14
Demo/Examples/Compdfkit_Tools/DigitalSignature/FillDigitalSignatureControl/FillDigitalSignatureControl.xaml

@@ -125,27 +125,27 @@
                         <ColumnDefinition Width="auto"></ColumnDefinition>
                     </Grid.ColumnDefinitions>
 
-                    <CheckBox x:Name="NameChk" FontSize="14" Click="NameChk_Click" Content="{Binding Converter={StaticResource SigResourceConverter},ConverterParameter=Tip_Name}"></CheckBox>
-                    <CheckBox x:Name="DateChk" FontSize="14" Grid.Row="1" Click="DateChk_Click" Content="{Binding Converter={StaticResource SigResourceConverter},ConverterParameter=Tip_Date}"></CheckBox>
-                    <CheckBox x:Name="LogoChk" FontSize="14" Grid.Row="2" Click="LogoChk_Click" Content="{Binding Converter={StaticResource SigResourceConverter},ConverterParameter=Tip_Logo}"></CheckBox>
-                    <CheckBox x:Name="ReasonChk" FontSize="14" Grid.Row="3" Click="ReasonChk_Click" Content="{Binding Converter={StaticResource SigResourceConverter},ConverterParameter=Tip_Reason}"></CheckBox>
-
-                    <CheckBox x:Name="DistinguishableNameChk" FontSize="14" Grid.Column="2" Click="DistinguishableNameChk_Click" Content="{Binding Converter={StaticResource SigResourceConverter},ConverterParameter=Tip_DN}"></CheckBox>
-                    <CheckBox x:Name="ComPDFKitVersionChk" FontSize="14" Grid.Column="2" Grid.Row="1" Click="ComPDFKitVersionChk_Click" Content="{Binding Converter={StaticResource SigResourceConverter},ConverterParameter=Tip_Version}"></CheckBox>
-                    <CheckBox x:Name="PositionChk" FontSize="14" Grid.Column="2" Grid.Row="2" Click="PositionChk_Click" Content="{Binding Converter={StaticResource SigResourceConverter},ConverterParameter=Tip_Position}"></CheckBox>
+                    <CheckBox x:Name="NameChk" FontSize="14" Click="NameChk_Click" Content="{Binding Converter={StaticResource SigResourceConverter},ConverterParameter=Chk_Name}"></CheckBox>
+                    <CheckBox x:Name="DateChk" FontSize="14" Grid.Row="1" Click="DateChk_Click" Content="{Binding Converter={StaticResource SigResourceConverter},ConverterParameter=Chk_Date}"></CheckBox>
+                    <CheckBox x:Name="LogoChk" FontSize="14" Grid.Row="2" Click="LogoChk_Click" Content="{Binding Converter={StaticResource SigResourceConverter},ConverterParameter=Chk_Logo}"></CheckBox>
+                    <CheckBox x:Name="ReasonChk" FontSize="14" Grid.Row="3" Click="ReasonChk_Click" Content="{Binding Converter={StaticResource SigResourceConverter},ConverterParameter=Chk_Reason}"></CheckBox>
+
+                    <CheckBox x:Name="DistinguishableNameChk" FontSize="14" Grid.Column="2" Click="DistinguishableNameChk_Click" Content="{Binding Converter={StaticResource SigResourceConverter},ConverterParameter=Chk_DN}"></CheckBox>
+                    <CheckBox x:Name="ComPDFKitVersionChk" FontSize="14" Grid.Column="2" Grid.Row="1" Click="ComPDFKitVersionChk_Click" Content="{Binding Converter={StaticResource SigResourceConverter},ConverterParameter=Chk_Version}"></CheckBox>
+                    <CheckBox x:Name="PositionChk" FontSize="14" Grid.Column="2" Grid.Row="2" Click="PositionChk_Click" Content="{Binding Converter={StaticResource SigResourceConverter},ConverterParameter=Chk_Position}"></CheckBox>
                     <CheckBox x:Name="TabChk" FontSize="14" Grid.Column="2" Grid.Row="3" Click="TabChk_Click" Content="{Binding Converter={StaticResource SigResourceConverter},ConverterParameter=Tip_Tab}"></CheckBox>
 
                     <StackPanel x:Name="Reasonstp" Visibility="Collapsed" Orientation="Horizontal" Grid.Column="4" Margin="30,0,0,0" Grid.RowSpan="2" Height="30" Width="280">
-                        <TextBlock Text="Reason: " VerticalAlignment="Center" Width="50"></TextBlock>
+                        <TextBlock Text="{Binding Converter={StaticResource SigResourceConverter}, ConverterParameter=Cmb_Reason}" VerticalAlignment="Center" Width="50"></TextBlock>
                         <ComboBox x:Name="ReasonCmb"  SelectionChanged="ReasonCmb_SelectionChanged" Width="220" VerticalContentAlignment="Center">
-                            <ComboBoxItem Content="&lt; None &gt;"></ComboBoxItem>
-                            <ComboBoxItem Content="I am the owner of the document." IsSelected="True"></ComboBoxItem>
-                            <ComboBoxItem Content="I am approving the document."></ComboBoxItem>
-                            <ComboBoxItem Content="I have reviewed this document"></ComboBoxItem>
+                            <ComboBoxItem Content="{Binding Converter={StaticResource SigResourceConverter}, ConverterParameter=Reason_None}"></ComboBoxItem>
+                            <ComboBoxItem Content="{Binding Converter={StaticResource SigResourceConverter}, ConverterParameter=Reason_Owner}" IsSelected="True"></ComboBoxItem>
+                            <ComboBoxItem Content="{Binding Converter={StaticResource SigResourceConverter}, ConverterParameter=Reason_Approving}"></ComboBoxItem>
+                            <ComboBoxItem Content="{Binding Converter={StaticResource SigResourceConverter}, ConverterParameter=Reason_Reviewed}"></ComboBoxItem>
                         </ComboBox>
                     </StackPanel>
                     <StackPanel x:Name="PositionStp" Visibility="Collapsed" Orientation="Horizontal" Grid.Column="4" Grid.Row="1" Margin="30,10,0,0"  Grid.RowSpan="2" Height="30" Width="280">
-                        <TextBlock Text="Position: " VerticalAlignment="Center" Width="50"></TextBlock>
+                        <TextBlock Text="{Binding Converter={StaticResource SigResourceConverter}, ConverterParameter=Tip_Position}" VerticalAlignment="Center" Width="50"></TextBlock>
                         <TextBox Width="220" x:Name="PositionTbx" TextChanged="PositionTbx_TextChanged"></TextBox>
                     </StackPanel>
                 </Grid>

+ 1 - 1
Demo/Examples/Compdfkit_Tools/DigitalSignature/VerifyDigitalSignatureControl/DigitalSignatureValiditySummaaryControl.xaml

@@ -12,7 +12,7 @@
     </UserControl.Resources>
     <Grid>
         <Grid Background="#ffffff"  Margin="20,0,0,0"  Panel.ZIndex="1" Height="20" HorizontalAlignment="Left" VerticalAlignment="Top">
-            <TextBlock Text="{Binding Converter={StaticResource SigResourceConverter},ConverterParameter=Text_Summary}" FontWeight="Bold" FontSize="14" FontFamily="Microsoft YaHei"></TextBlock>
+            <TextBlock Text="{Binding Converter={StaticResource SigResourceConverter},ConverterParameter=Text_Statement}" FontWeight="Bold" FontSize="14" FontFamily="Microsoft YaHei"></TextBlock>
         </Grid>
         <Border Grid.Row="0" Margin="12" BorderBrush="#CCCCCC" BorderThickness="1">
             <TextBlock Margin="10" Text="{Binding ValiditySummaryString}" Width="448" TextWrapping="Wrap"></TextBlock>

+ 6 - 6
Demo/Examples/Compdfkit_Tools/Edit/ContentEditCOntrol/ContentEditControl.xaml.cs

@@ -653,7 +653,7 @@ namespace Compdfkit_Tools.PDFControl
                 editCommand.PopupMenu.Items.Add(rotateRightMenu);
 
                 MenuItem replaceMenu = new MenuItem();
-                replaceMenu.Header = "Replace";
+                replaceMenu.Header = LanguageHelper.CommonManager.GetString("Menu_Replace");
                 replaceMenu.Click += (o, p) =>
                 {
                     if (lastPDFEditEvent != null && lastPDFEditEvent.EditType == CPDFEditType.EditImage)
@@ -672,7 +672,7 @@ namespace Compdfkit_Tools.PDFControl
                 editCommand.PopupMenu.Items.Add(replaceMenu);
 
                 MenuItem exportMenu = new MenuItem();
-                exportMenu.Header = "Export";
+                exportMenu.Header = LanguageHelper.CommonManager.GetString("Menu_Export");
                 exportMenu.Click += (o, p) =>
                 {
                     if (PdfViewControl != null && PdfViewControl.PDFView != null)
@@ -703,13 +703,13 @@ namespace Compdfkit_Tools.PDFControl
                 editCommand.PopupMenu.Items.Add(exportMenu);
 
                 MenuItem opacityMenu = new MenuItem();
-                opacityMenu.Header = "Opacity";
+                opacityMenu.Header = LanguageHelper.CommonManager.GetString("Menu_Opacity");
                 editCommand.PopupMenu.Items.Add(opacityMenu);
 
                 AppendOpacityMenu(opacityMenu);
 
                 MenuItem horizonMirror = new MenuItem();
-                horizonMirror.Header = "HMirror";
+                horizonMirror.Header = LanguageHelper.CommonManager.GetString("Menu_HFlip");
                 horizonMirror.Click += (o, p) =>
                 {
                     if (lastPDFEditEvent != null && lastPDFEditEvent.EditType == CPDFEditType.EditImage)
@@ -721,7 +721,7 @@ namespace Compdfkit_Tools.PDFControl
                 editCommand.PopupMenu.Items.Add(horizonMirror);
 
                 MenuItem verticalMirror = new MenuItem();
-                verticalMirror.Header = "VMirror";
+                verticalMirror.Header = LanguageHelper.CommonManager.GetString("Menu_VFlip");
                 verticalMirror.Click += (o, p) =>
                 {
                     if (lastPDFEditEvent != null && lastPDFEditEvent.EditType == CPDFEditType.EditImage)
@@ -733,7 +733,7 @@ namespace Compdfkit_Tools.PDFControl
                 editCommand.PopupMenu.Items.Add(verticalMirror);
 
                 MenuItem cropMenu = new MenuItem();
-                cropMenu.Header = "Crop";
+                cropMenu.Header = LanguageHelper.CommonManager.GetString("Menu_Crop");
                 cropMenu.Click += (o, p) =>
                 {
                     if (lastPDFEditEvent != null && lastPDFEditEvent.EditType == CPDFEditType.EditImage)

+ 7 - 3
Demo/Examples/Compdfkit_Tools/Edit/PDFImageEdit/PDFImageEditControl/PDFImageEditControl.xaml

@@ -15,6 +15,7 @@
                 <ResourceDictionary Source="../../../Asset/Styles/SliderStyle.xaml"></ResourceDictionary>
             </ResourceDictionary.MergedDictionaries>
             <common:PropertyPanelResourceConverter x:Key="PropertyPanelResourceConverter"></common:PropertyPanelResourceConverter>
+            <common:CommonResourceConverter x:Key="CommonResourceConverter" />
         </ResourceDictionary>
     </UserControl.Resources>
     
@@ -95,7 +96,8 @@
 
             <Border  Grid.Row="1" BorderThickness="1" BorderBrush="#E1E3E5"  Margin="0,14,0,0" HorizontalAlignment="Left">
                 <StackPanel Orientation="Horizontal">
-                    <Button Name="ImageReplaceBtn" Width="40" Height="25" BorderThickness="0" Click="ImageReplaceBtn_Click" Background="White" Style="{StaticResource LightButtonStyle}">
+                    <Button Name="ImageReplaceBtn" Width="40" Height="25" BorderThickness="0" Click="ImageReplaceBtn_Click" Background="White" Style="{StaticResource LightButtonStyle}"
+                            ToolTip="{Binding Converter={StaticResource CommonResourceConverter},ConverterParameter=Menu_Replace}">
                         <Button.Content>
                             <Path Fill="#43474D">
                                 <Path.Data>
@@ -111,7 +113,8 @@
                         </Button.Content>
                     </Button>
  
-                    <Button Grid.Column="1" Width="40" Height="25" BorderThickness="0" Click="ImageExportBtn_Click" Background="White" Style="{StaticResource LightButtonStyle}">
+                    <Button Grid.Column="1" Width="40" Height="25" BorderThickness="0" Click="ImageExportBtn_Click" Background="White" Style="{StaticResource LightButtonStyle}"
+                            ToolTip="{Binding Converter={StaticResource CommonResourceConverter},ConverterParameter=Menu_Export}">
                         <Button.Content>
                             <Path Fill="#43474D">
                                 <Path.Data>
@@ -123,7 +126,8 @@
                         </Button.Content>
                     </Button>
 
-                    <Button Name="ImageClipBtn" Grid.Column="1" Width="40" Height="25" BorderThickness="0" Click="ImageClipBtn_Click" Background="White" Style="{StaticResource LightButtonStyle}">
+                    <Button Name="ImageClipBtn" Grid.Column="1" Width="40" Height="25" BorderThickness="0" Click="ImageClipBtn_Click" Background="White" Style="{StaticResource LightButtonStyle}"
+                            ToolTip="{Binding Converter={StaticResource CommonResourceConverter},ConverterParameter=Menu_Crop}">
                         <Button.Content>
                             <Path Fill="#43474D">
                                 <Path.Data>

+ 1 - 1
Demo/Examples/Compdfkit_Tools/Edit/PDFTextEdit/PDFTextEditUI/CPDFTextStyleUI.xaml

@@ -22,7 +22,7 @@
         </Grid.RowDefinitions>
         <Border>
             <TextBlock VerticalAlignment="Center" Margin="0,10,10,0" FontSize="14" Foreground="#43474D"
-                       Text="{Binding Converter={StaticResource PropertyPanelResourceConverter},ConverterParameter=Property_FontStyle}"></TextBlock>
+                       Text="{Binding Converter={StaticResource PropertyPanelResourceConverter},ConverterParameter=Property_Font}"></TextBlock>
         </Border>
       
         <Grid Grid.Row="1" Margin="0,10,0,0">

+ 1 - 1
Demo/Examples/Compdfkit_Tools/Form/Property/ListBoxProperty.xaml

@@ -76,7 +76,7 @@
                             <cpdfcommon:ColorPickerControl Margin="0,18,0,0" x:Name="TextColorPickerControl" ColorChanged="TextColorPickerControl_ColorChanged"/>
                         </StackPanel>
                         <StackPanel>
-                            <TextBlock  Margin="0,20,0,0" HorizontalAlignment="Left" VerticalAlignment="Top" Text="Text" FontSize="14" FontFamily="Microsoft YaHei" FontWeight="Bold" />
+                            <TextBlock  Margin="0,20,0,0" HorizontalAlignment="Left" VerticalAlignment="Top" Text="{Binding Converter={StaticResource PropertyPanelResourceConverter},ConverterParameter=Property_Font}" FontSize="14" FontFamily="Microsoft YaHei" FontWeight="Bold" />
                             <ComboBox x:Name="FontCmb" Margin="0,8,0,0" Style="{StaticResource ComboBoxStyle1}" SelectedIndex="0" SelectionChanged="FontCmb_SelectionChanged">
                                 <ComboBoxItem Content="Arial"/>
                                 <ComboBoxItem Content="Courier New"/>

+ 2 - 2
Demo/Examples/Compdfkit_Tools/Form/Property/PushButtonProperty.xaml

@@ -20,7 +20,7 @@
 
             <VisualBrush x:Key="HintText" TileMode="None" Opacity="0.5" Stretch="None" AlignmentX="Left">
                 <VisualBrush.Visual>
-                    <TextBlock Name="hittext" FontStyle="Italic" FontSize="11" Text="https://www.compdf.com"/>
+                    <TextBlock FontStyle="Italic" FontSize="11" Text="{Binding HintText}"/>
                 </VisualBrush.Visual>
             </VisualBrush>
 
@@ -92,7 +92,7 @@
                             <cpdfcommon:ColorPickerControl Margin="0,18,0,0" x:Name="TextColorPickerControl" ColorChanged="TextColorPickerControl_ColorChanged"/>
                         </StackPanel>
                         <StackPanel>
-                            <TextBlock  Margin="0,20,0,0" HorizontalAlignment="Left" VerticalAlignment="Top" Text="Text" FontSize="14" FontFamily="Microsoft YaHei" FontWeight="Bold" />
+                            <TextBlock  Margin="0,20,0,0" HorizontalAlignment="Left" VerticalAlignment="Top" Text="{Binding Converter={StaticResource PropertyPanelResourceConverter},ConverterParameter=Property_Font}" FontSize="14" FontFamily="Microsoft YaHei" FontWeight="Bold" />
                             <ComboBox x:Name="FontCmb" Margin="0,8,0,0" Style="{StaticResource ComboBoxStyle1}" SelectedIndex="0" SelectionChanged="FontCmb_SelectionChanged">
                                 <ComboBoxItem Content="Arial"/>
                                 <ComboBoxItem Content="Courier New"/>

+ 30 - 1
Demo/Examples/Compdfkit_Tools/Form/Property/PushButtonProperty.xaml.cs

@@ -7,12 +7,15 @@ using System.Windows.Controls;
 using System.Windows.Data;
 using System.Windows.Media;
 using System.Collections.ObjectModel;
+using System.ComponentModel;
+using System.Runtime.CompilerServices;
+using Compdfkit_Tools.Helper;
 using ComPDFKit.PDFDocument.Action;
 using ComPDFKitViewer.PdfViewer;
 
 namespace Compdfkit_Tools.PDFControl
 {
-    public partial class PushButtonProperty : UserControl
+    public partial class PushButtonProperty : UserControl,INotifyPropertyChanged
     {
         private WidgetPushButtonArgs widgetArgs = null;
         private AnnotAttribEvent annotAttribEvent = null;
@@ -22,10 +25,18 @@ namespace Compdfkit_Tools.PDFControl
             6,8,9,10,12,14,18,20,24,26,28,32,30,32,48,72
         };
 
+        private string _HintText;
+        public string HintText
+        {
+            get => _HintText;
+            set => SetField(ref _HintText, value);
+        }
+
         bool IsLoadedData = false;
         public PushButtonProperty()
         {
             InitializeComponent();
+            DataContext = this;
         }
 
         #region Loaded
@@ -240,10 +251,13 @@ namespace Compdfkit_Tools.PDFControl
                         break;
                     case 1:
                         ActionContentText.Visibility = Visibility.Visible;
+                        HintText = LanguageHelper.PropertyPanelManager.GetString("Holder_Jump") + pdfViewer.Document.PageCount;
+                        ActionContentText.Style = this.FindResource("txtboxStyle") as Style;
                         ActionContentText.Text = "";
                         break;
                     case 2:
                         ActionContentText.Visibility = Visibility.Visible;
+                        HintText = "https://www.compdf.com";
                         ActionContentText.Style = this.FindResource("txtboxStyle") as Style;
                         ActionContentText.Text = "";
                         break;
@@ -298,5 +312,20 @@ namespace Compdfkit_Tools.PDFControl
         {
             AddAction();
         }
+
+        public event PropertyChangedEventHandler PropertyChanged;
+
+        protected virtual void OnPropertyChanged([CallerMemberName] string propertyName = null)
+        {
+            PropertyChanged?.Invoke(this, new PropertyChangedEventArgs(propertyName));
+        }
+
+        protected bool SetField<T>(ref T field, T value, [CallerMemberName] string propertyName = null)
+        {
+            if (EqualityComparer<T>.Default.Equals(field, value)) return false;
+            field = value;
+            OnPropertyChanged(propertyName);
+            return true;
+        }
     }
 }

+ 1 - 1
Demo/Examples/Compdfkit_Tools/Form/Property/TextFieldProperty.xaml

@@ -75,7 +75,7 @@
                             <cpdfcommon:ColorPickerControl Margin="0,18,0,0" x:Name="TextColorPickerControl" ColorChanged="TextColorPickerControl_ColorChanged"/>
                         </StackPanel>
                         <StackPanel>
-                            <TextBlock  Margin="0,20,0,0" HorizontalAlignment="Left" VerticalAlignment="Top" Text="Text" FontSize="14" FontFamily="Microsoft YaHei" FontWeight="Bold" />
+                            <TextBlock  Margin="0,20,0,0" HorizontalAlignment="Left" VerticalAlignment="Top" Text="{Binding Converter={StaticResource PropertyPanelResourceConverter},ConverterParameter=Property_Font}" FontSize="14" FontFamily="Microsoft YaHei" FontWeight="Bold" />
                             <ComboBox x:Name="FontCmb" Margin="0,8,0,0" Style="{StaticResource ComboBoxStyle1}" SelectedIndex="0" SelectionChanged="FontCmb_SelectionChanged">
                                 <ComboBoxItem Content="Arial"/>
                                 <ComboBoxItem Content="Courier New"/>

+ 1 - 1
Demo/Examples/Compdfkit_Tools/PDFView/PDFSearch/PDFSearchControl/CPDFSearchControl.xaml.cs

@@ -79,7 +79,7 @@ namespace Compdfkit_Tools.PDFControl
             currentHighLightIndex = e;
             BindSearchResult result = SearchResult.GetSelectItem();
             HighLightSelectResult(result);
-            ResultText.Text = LanguageHelper.BotaManager.GetString("Text_Result")+ (e+1) + "//" + ResultCount;
+            ResultText.Text = LanguageHelper.BotaManager.GetString("Text_Result")+ (e+1) + "/" + ResultCount;
         }
 
         private void TextSearch_SearchCompletedHandler(object sender, TextSearchResult e)

+ 3 - 1
Demo/Examples/Compdfkit_Tools/PageEdit/PDFPageEdit/CPDFPageEditControl.xaml.cs

@@ -1831,7 +1831,9 @@ namespace Compdfkit_Tools.PDFControl
             Winform.DialogResult result = Winform.DialogResult.OK;
             if (tip)
             {
-                result = Winform.MessageBox.Show(string.Format("Do you want to delete page {0}", GetPageParam()), "Delete", Winform.MessageBoxButtons.OKCancel, Winform.MessageBoxIcon.Warning);
+                result = Winform.MessageBox.Show(LanguageHelper.DocEditorManager.GetString("Warn_Delete")
+                    ,LanguageHelper.CommonManager.GetString("Caption_Warning")
+                    , Winform.MessageBoxButtons.OKCancel, Winform.MessageBoxIcon.Warning);
             }
             if (result == Winform.DialogResult.OK || !tip)
             {

+ 1 - 0
Demo/Examples/Compdfkit_Tools/PageEdit/PDFPageExtract/CPDFPageExtractWindow.xaml.cs

@@ -21,6 +21,7 @@ namespace Compdfkit_Tools.PDFControl
         public CPDFPageExtractWindow()
         {
             InitializeComponent();
+            Title = LanguageHelper.DocEditorManager.GetString("Title_Extract");
         }
           
         public void InitPageExtractWindow(string customPageRange, int maxPage)

+ 4 - 4
Demo/Examples/Compdfkit_Tools/PageEdit/PDFPageInsert/CPDFPageInsertUI.xaml

@@ -49,11 +49,11 @@
                     <Grid Grid.Row="1" Grid.ColumnSpan="2">
                         <StackPanel x:Name="OtherFilePanel" Orientation="Vertical"  Visibility="{Binding IsChecked, ElementName=OtherFileRadioButton, Converter={StaticResource BoolToVisibleConverter}}">
                             <StackPanel Orientation="Horizontal" Margin="0,6,0,0" IsEnabled="{Binding ElementName=OtherFileRadioButton, Path=IsChecked}">
-                                <Button x:Name="SelectFileButton" Width="70" Content="{Binding Converter={StaticResource DocEditorResourceConverter},ConverterParameter=Button_Select}" Click="SelectFileButton_Click"></Button>
+                                <Button x:Name="SelectFileButton" Width="75" Content="{Binding Converter={StaticResource DocEditorResourceConverter},ConverterParameter=Button_Select}" Click="SelectFileButton_Click"></Button>
                                 <TextBox x:Name="FilePathTextBox" Width="230" Height="28" Margin="8,0,0,0" IsReadOnly="True" VerticalContentAlignment="Center"/>
                             </StackPanel>
                             <StackPanel Orientation="Horizontal" Margin="0,6,0,0"  IsEnabled="{Binding ElementName=OtherFileRadioButton, Path=IsChecked}">
-                                <TextBlock Text="{Binding Converter={StaticResource DocEditorResourceConverter},ConverterParameter=Text_Range}" Width="80" VerticalAlignment="Center"></TextBlock>
+                                <TextBlock Text="{Binding Converter={StaticResource DocEditorResourceConverter},ConverterParameter=Text_Range}" Width="83" VerticalAlignment="Center"></TextBlock>
                                 <cpdfcommon:WritableComboBoxControl x:Name="WritableComboBoxControl" Width="230" Margin="0,0,0,0" Loaded="WritableComboBoxControl_Loaded" Unloaded="WritableComboBoxControl_Unloaded"></cpdfcommon:WritableComboBoxControl>
                             </StackPanel>
                         </StackPanel>
@@ -66,7 +66,7 @@
                     </Grid>
                 </Grid>
             </Border>
-            <TextBlock Text="{Binding Converter={StaticResource DocEditorResourceConverter},ConverterParameter=Subtitle_Pages}" FontFamily="Microsoft YaHei" Margin="40,0,0,0" Background="White" Width="70" Height="16" VerticalAlignment="Top" HorizontalAlignment="Left" FontWeight="Bold"></TextBlock>
+            <TextBlock Text="{Binding Converter={StaticResource DocEditorResourceConverter},ConverterParameter=Subtitle_Pages}" FontFamily="Microsoft YaHei" Margin="40,0,0,0" Background="White" Height="16" VerticalAlignment="Top" HorizontalAlignment="Left" FontWeight="Bold"></TextBlock>
         </Grid>
         <Grid Grid.Row="2">
             <Border BorderBrush="#1A000000" BorderThickness="1" Width="382" Height="184">
@@ -98,7 +98,7 @@
                     </StackPanel>
                 </Grid>
             </Border>
-            <TextBlock Text="{Binding Converter={StaticResource DocEditorResourceConverter},ConverterParameter=Subtitle_Pos}" FontFamily="Microsoft YaHei" Margin="40,-4,0,0" Background="White" Width="120" Height="16" VerticalAlignment="Top" HorizontalAlignment="Left" FontWeight="Bold"></TextBlock>
+            <TextBlock Text="{Binding Converter={StaticResource DocEditorResourceConverter},ConverterParameter=Subtitle_Pos}" FontFamily="Microsoft YaHei" Margin="40,-4,0,0" Background="White" Height="16" VerticalAlignment="Top" HorizontalAlignment="Left" FontWeight="Bold"></TextBlock>
         </Grid>
         <StackPanel HorizontalAlignment="Right" Grid.Row="3" Orientation="Horizontal" Margin="0,0,25,0">
             <Button x:Name="CancelButton" Height="32" Width="112" Click="CancelButton_Click">

+ 1 - 0
Demo/Examples/Compdfkit_Tools/PageEdit/PDFPageInsert/CPDFPageInsertWindow.xaml.cs

@@ -16,6 +16,7 @@ namespace Compdfkit_Tools.PDFControl
         public CPDFPageInsertWindow()
         {
             InitializeComponent();
+            Title = LanguageHelper.DocEditorManager.GetString("Title_Insert");
         }
 
         public void InitPageInsertWindow(int index, int maxPage)

+ 1 - 1
Demo/Examples/Compdfkit_Tools/Security/Encryption/DecryptionDialog.xaml

@@ -31,7 +31,7 @@
         </StackPanel>
         
         <StackPanel Grid.Row="2" Orientation="Horizontal" HorizontalAlignment="Right">
-            <Button Width="112" Height="32" FontFamily="Microsoft YaHei" FontSize="14" Content="{Binding Converter={StaticResource SecurityResourceConverter}, ConverterParameter=Button_Apply}" Click="Remove_Click" IsEnabled="{Binding  ElementName=FileListControl,Path=IsEnsure}"></Button>
+            <Button Width="112" Height="32" FontFamily="Microsoft YaHei" FontSize="14" Content="{Binding Converter={StaticResource SecurityResourceConverter}, ConverterParameter=Button_Decrypt}" Click="Remove_Click" IsEnabled="{Binding  ElementName=FileListControl,Path=IsEnsure}"></Button>
             <Button Width="112" Height="32" FontFamily="Microsoft YaHei" FontSize="14" Content="{Binding Converter={StaticResource SecurityResourceConverter}, ConverterParameter=Button_Cancel}" Margin="10,0,10,0" Click="Cancel_Click"></Button>
         </StackPanel>
     </Grid>

+ 1 - 1
Demo/Examples/Compdfkit_Tools/Security/Encryption/EncryptionDialog.xaml

@@ -34,7 +34,7 @@
                           ProgressMaxValue="{Binding  ElementName=FileListControl,Path=FileNumText}"  ></common:CustomProgressBarControl>
             
             <StackPanel Grid.Column="1" Grid.Row="1" Orientation="Horizontal" HorizontalAlignment="Right" Margin="0,10,20,0">
-                <Button Height="32" Width="112" Content="{Binding Converter={StaticResource SecurityResourceConverter}, ConverterParameter=Button_OK}" Click="ButtonEncrypt_Click">
+                <Button Height="32" Width="112" Content="{Binding Converter={StaticResource SecurityResourceConverter}, ConverterParameter=Button_Encrypt}" Click="ButtonEncrypt_Click">
                     <Button.IsEnabled>
                         <MultiBinding Converter="{StaticResource AndMultiBoolValueConverter}">
                             <Binding ElementName="FileListControl" Path="IsEnsure"></Binding>

+ 1 - 1
Demo/Examples/Compdfkit_Tools/Security/Encryption/FileGridListControl.xaml.cs

@@ -108,7 +108,7 @@ namespace Compdfkit_Tools.PDFControl
                     continue;
                 }
                 
-                if (document.IsLocked)
+                if (document.GetPermissionsInfo().AllowsCopying || document.GetPermissionsInfo().AllowsPrinting)
                 {
                     if(!PasswordHelper.UnlockWithOwnerPassword(document))
                     {

+ 54 - 1
Demo/Examples/Compdfkit_Tools/Strings/Common.Designer.cs

@@ -1,7 +1,6 @@
 //------------------------------------------------------------------------------
 // <auto-generated>
 //     This code was generated by a tool.
-//     Runtime Version:4.0.30319.42000
 //
 //     Changes to this file may cause incorrect behavior and will be lost if
 //     the code is regenerated.
@@ -456,6 +455,15 @@ namespace Compdfkit_Tools.Strings.Common {
             }
         }
         
+        /// <summary>
+        ///   Looks up a localized string similar to Crop.
+        /// </summary>
+        internal static string Menu_Crop {
+            get {
+                return ResourceManager.GetString("Menu_Crop", resourceCulture);
+            }
+        }
+        
         /// <summary>
         ///   Looks up a localized string similar to Cut.
         /// </summary>
@@ -501,6 +509,15 @@ namespace Compdfkit_Tools.Strings.Common {
             }
         }
         
+        /// <summary>
+        ///   Looks up a localized string similar to Export.
+        /// </summary>
+        internal static string Menu_Export {
+            get {
+                return ResourceManager.GetString("Menu_Export", resourceCulture);
+            }
+        }
+        
         /// <summary>
         ///   Looks up a localized string similar to File.
         /// </summary>
@@ -519,6 +536,15 @@ namespace Compdfkit_Tools.Strings.Common {
             }
         }
         
+        /// <summary>
+        ///   Looks up a localized string similar to Flip horizontal.
+        /// </summary>
+        internal static string Menu_HFlip {
+            get {
+                return ResourceManager.GetString("Menu_HFlip", resourceCulture);
+            }
+        }
+        
         /// <summary>
         ///   Looks up a localized string similar to Highlight.
         /// </summary>
@@ -537,6 +563,15 @@ namespace Compdfkit_Tools.Strings.Common {
             }
         }
         
+        /// <summary>
+        ///   Looks up a localized string similar to Opacity.
+        /// </summary>
+        internal static string Menu_Opacity {
+            get {
+                return ResourceManager.GetString("Menu_Opacity", resourceCulture);
+            }
+        }
+        
         /// <summary>
         ///   Looks up a localized string similar to Paste.
         /// </summary>
@@ -564,6 +599,15 @@ namespace Compdfkit_Tools.Strings.Common {
             }
         }
         
+        /// <summary>
+        ///   Looks up a localized string similar to Replace.
+        /// </summary>
+        internal static string Menu_Replace {
+            get {
+                return ResourceManager.GetString("Menu_Replace", resourceCulture);
+            }
+        }
+        
         /// <summary>
         ///   Looks up a localized string similar to Reset Forms.
         /// </summary>
@@ -645,6 +689,15 @@ namespace Compdfkit_Tools.Strings.Common {
             }
         }
         
+        /// <summary>
+        ///   Looks up a localized string similar to Flip vertical.
+        /// </summary>
+        internal static string Menu_VFlip {
+            get {
+                return ResourceManager.GetString("Menu_VFlip", resourceCulture);
+            }
+        }
+        
         /// <summary>
         ///   Looks up a localized string similar to Zoom In.
         /// </summary>

+ 18 - 0
Demo/Examples/Compdfkit_Tools/Strings/Common.resx

@@ -492,4 +492,22 @@
   <data name="Text_ImageCorrupted" xml:space="preserve">
     <value>Load image failed. Please check if the image is corrupted.</value>
   </data>
+  <data name="Menu_Replace" xml:space="preserve">
+    <value>Replace</value>
+  </data>
+  <data name="Menu_Export" xml:space="preserve">
+    <value>Export</value>
+  </data>
+  <data name="Menu_Opacity" xml:space="preserve">
+    <value>Opacity</value>
+  </data>
+  <data name="Menu_HFlip" xml:space="preserve">
+    <value>Flip horizontal</value>
+  </data>
+  <data name="Menu_VFlip" xml:space="preserve">
+    <value>Flip vertical</value>
+  </data>
+  <data name="Menu_Crop" xml:space="preserve">
+    <value>Crop</value>
+  </data>
 </root>

+ 19 - 1
Demo/Examples/Compdfkit_Tools/Strings/Common.zh.resx

@@ -475,7 +475,7 @@
     <value>仅奇数页</value>
   </data>
   <data name="Caption_Warning" xml:space="preserve">
-    <value>警告</value>
+    <value>注意</value>
   </data>
   <data name="Warn_Delete" xml:space="preserve">
     <value>确定删除该内容?</value>
@@ -492,4 +492,22 @@
   <data name="Text_ImageCorrupted" xml:space="preserve">
     <value>图像加载失败,请检查图片是否损坏。</value>
   </data>
+  <data name="Menu_Replace" xml:space="preserve">
+    <value>替换</value>
+  </data>
+  <data name="Menu_Export" xml:space="preserve">
+    <value>导出</value>
+  </data>
+  <data name="Menu_Opacity" xml:space="preserve">
+    <value>不透明度</value>
+  </data>
+  <data name="Menu_HFlip" xml:space="preserve">
+    <value>水平翻转</value>
+  </data>
+  <data name="Menu_VFlip" xml:space="preserve">
+    <value>垂直翻转</value>
+  </data>
+  <data name="Menu_Crop" xml:space="preserve">
+    <value>裁剪</value>
+  </data>
 </root>

+ 10 - 1
Demo/Examples/Compdfkit_Tools/Strings/DocEditor.Designer.cs

@@ -231,7 +231,7 @@ namespace Compdfkit_Tools.Strings {
         }
         
         /// <summary>
-        ///   Looks up a localized string similar to Insert Pages.
+        ///   Looks up a localized string similar to Page Range.
         /// </summary>
         internal static string Subtitle_Pages {
             get {
@@ -293,6 +293,15 @@ namespace Compdfkit_Tools.Strings {
             }
         }
         
+        /// <summary>
+        ///   Looks up a localized string similar to Are you sure to delete?.
+        /// </summary>
+        internal static string Warn_Delete {
+            get {
+                return ResourceManager.GetString("Warn_Delete", resourceCulture);
+            }
+        }
+        
         /// <summary>
         ///   Looks up a localized string similar to No File Selected.
         /// </summary>

+ 4 - 1
Demo/Examples/Compdfkit_Tools/Strings/DocEditor.resx

@@ -22,7 +22,7 @@
         <value>Insert</value>
     </data>
     <data name="Subtitle_Pages" xml:space="preserve">
-        <value>Insert Pages</value>
+        <value>Page Range</value>
     </data>
     <data name="Option_Blank" xml:space="preserve">
         <value>Blank Page</value>
@@ -102,4 +102,7 @@
     <data name="Tip_AllPage" xml:space="preserve">
         <value>Can not delete all pages. Please keep at least one page.</value>
     </data>
+    <data name="Warn_Delete" xml:space="preserve">
+        <value>Are you sure to delete?</value>
+    </data>
 </root>

+ 4 - 1
Demo/Examples/Compdfkit_Tools/Strings/DocEditor.zh.resx

@@ -15,7 +15,7 @@
         <value>插入</value>
     </data>
     <data name="Subtitle_Pages" xml:space="preserve">
-        <value>插入页面</value>
+        <value>页面范围</value>
     </data>
     <data name="Option_Blank" xml:space="preserve">
         <value>空白页</value>
@@ -95,4 +95,7 @@
     <data name="Tip_AllPage" xml:space="preserve">
         <value>不能删除所有页面。请至少保留一个页面。</value>
     </data>
+    <data name="Warn_Delete" xml:space="preserve">
+        <value>确定删除该内容?</value>
+    </data>
 </root>

+ 2 - 2
Demo/Examples/Compdfkit_Tools/Strings/PropertyPanel.Designer.cs

@@ -222,7 +222,7 @@ namespace Compdfkit_Tools.Strings {
         }
         
         /// <summary>
-        ///   Looks up a localized string similar to Date(YYYY-MM-dd).
+        ///   Looks up a localized string similar to Date (YYYY-MM-dd).
         /// </summary>
         internal static string Check_Date {
             get {
@@ -240,7 +240,7 @@ namespace Compdfkit_Tools.Strings {
         }
         
         /// <summary>
-        ///   Looks up a localized string similar to Time(HH:mm:ss).
+        ///   Looks up a localized string similar to Time (HH:mm:ss).
         /// </summary>
         internal static string Check_Time {
             get {

+ 2 - 2
Demo/Examples/Compdfkit_Tools/Strings/PropertyPanel.resx

@@ -286,10 +286,10 @@
     <value>Color</value>
   </data>
   <data name="Check_Date" xml:space="preserve">
-    <value>Date(YYYY-MM-dd)</value>
+    <value>Date (YYYY-MM-dd)</value>
   </data>
   <data name="Check_Time" xml:space="preserve">
-    <value>Time(HH:mm:ss)</value>
+    <value>Time (HH:mm:ss)</value>
   </data>
   <data name="Button_OK" xml:space="preserve">
     <value>OK</value>

+ 38 - 3
Demo/Examples/Compdfkit_Tools/Strings/Security.Designer.cs

@@ -1,7 +1,6 @@
 //------------------------------------------------------------------------------
 // <auto-generated>
 //     This code was generated by a tool.
-//     Runtime Version:4.0.30319.42000
 //
 //     Changes to this file may cause incorrect behavior and will be lost if
 //     the code is regenerated.
@@ -87,6 +86,15 @@ namespace Compdfkit_Tools.Strings {
             }
         }
         
+        /// <summary>
+        ///   Looks up a localized string similar to Decrypt.
+        /// </summary>
+        internal static string Button_Decrypt {
+            get {
+                return ResourceManager.GetString("Button_Decrypt", resourceCulture);
+            }
+        }
+        
         /// <summary>
         ///   Looks up a localized string similar to Encrypt.
         /// </summary>
@@ -177,6 +185,24 @@ namespace Compdfkit_Tools.Strings {
             }
         }
         
+        /// <summary>
+        ///   Looks up a localized string similar to Watermark_Removed.
+        /// </summary>
+        internal static string FileName_RemoveWatermark {
+            get {
+                return ResourceManager.GetString("FileName_RemoveWatermark", resourceCulture);
+            }
+        }
+        
+        /// <summary>
+        ///   Looks up a localized string similar to Watermark.
+        /// </summary>
+        internal static string FileName_Watermark {
+            get {
+                return ResourceManager.GetString("FileName_Watermark", resourceCulture);
+            }
+        }
+        
         /// <summary>
         ///   Looks up a localized string similar to Please enter your password.
         /// </summary>
@@ -411,6 +437,15 @@ namespace Compdfkit_Tools.Strings {
             }
         }
         
+        /// <summary>
+        ///   Looks up a localized string similar to No File Selected.
+        /// </summary>
+        internal static string Text_EmptyPath {
+            get {
+                return ResourceManager.GetString("Text_EmptyPath", resourceCulture);
+            }
+        }
+        
         /// <summary>
         ///   Looks up a localized string similar to Encryption Level.
         /// </summary>
@@ -538,7 +573,7 @@ namespace Compdfkit_Tools.Strings {
         }
         
         /// <summary>
-        ///   Looks up a localized string similar to PDF Password Remover is an easy-to-use PDF security remover,which helps users decrypt PDF protections and remove restrictions on printing,editing and copying.
+        ///   Looks up a localized string similar to PDF Password Remover is an easy-to-use PDF security remover,which helps users decrypt PDF protections and remove restrictions on printing,editing and copying..
         /// </summary>
         internal static string Tip_EasyUse {
             get {
@@ -565,7 +600,7 @@ namespace Compdfkit_Tools.Strings {
         }
         
         /// <summary>
-        ///   Looks up a localized string similar to Password to Open the Document.
+        ///   Looks up a localized string similar to Open the Document.
         /// </summary>
         internal static string Title_OpenPassword {
             get {

+ 14 - 2
Demo/Examples/Compdfkit_Tools/Strings/Security.resx

@@ -304,13 +304,13 @@
     <value>Watermark Settings</value>
   </data>
   <data name="Tip_EasyUse" xml:space="preserve">
-    <value>PDF Password Remover is an easy-to-use PDF security remover,which helps users decrypt PDF protections and remove restrictions on printing,editing and copying</value>
+    <value>PDF Password Remover is an easy-to-use PDF security remover,which helps users decrypt PDF protections and remove restrictions on printing,editing and copying.</value>
   </data>
   <data name="Tip_Require" xml:space="preserve">
     <value>If open password is required,you need to enter the right password first and then remove protections from PDF files.</value>
   </data>
   <data name="Title_OpenPassword" xml:space="preserve">
-    <value>Password to Open the Document</value>
+    <value>Open the Document</value>
   </data>
   <data name="Chk_OpenPassword" xml:space="preserve">
     <value>Set the password to open the document</value>
@@ -336,4 +336,16 @@
   <data name="Warn_EmptyWatermarkText" xml:space="preserve">
     <value>No Text input.</value>
   </data>
+  <data name="Text_EmptyPath" xml:space="preserve">
+    <value>No File Selected</value>
+  </data>
+  <data name="FileName_Watermark" xml:space="preserve">
+    <value>Watermark</value>
+  </data>
+  <data name="FileName_RemoveWatermark" xml:space="preserve">
+    <value>Watermark_Removed</value>
+  </data>
+  <data name="Button_Decrypt" xml:space="preserve">
+    <value>Decrypt</value>
+  </data>
 </root>

+ 9 - 0
Demo/Examples/Compdfkit_Tools/Strings/Security.zh.resx

@@ -339,4 +339,13 @@
   <data name="Warn_EmptyWatermarkText" xml:space="preserve">
     <value>没有输入文字。</value>
   </data>
+  <data name="FileName_Watermark" xml:space="preserve">
+    <value>水印</value>
+  </data>
+  <data name="FileName_RemoveWatermark" xml:space="preserve">
+    <value>水印已移除</value>
+  </data>
+  <data name="Button_Decrypt" xml:space="preserve">
+    <value>解密</value>
+  </data>
 </root>

+ 87 - 33
Demo/Examples/Compdfkit_Tools/Strings/Signature.Designer.cs

@@ -258,7 +258,16 @@ namespace Compdfkit_Tools.Strings {
         }
         
         /// <summary>
-        ///   Looks up a localized string similar to  Create your self-signed Digital ID.
+        ///   Looks up a localized string similar to Reason: .
+        /// </summary>
+        internal static string Cmb_Reason {
+            get {
+                return ResourceManager.GetString("Cmb_Reason", resourceCulture);
+            }
+        }
+        
+        /// <summary>
+        ///   Looks up a localized string similar to Create your self-signed Digital ID.
         /// </summary>
         internal static string Describe_Create {
             get {
@@ -267,7 +276,7 @@ namespace Compdfkit_Tools.Strings {
         }
         
         /// <summary>
-        ///   Looks up a localized string similar to  Import an existing Digital ID that you have obtained as file.
+        ///   Looks up a localized string similar to Import an existing Digital ID that you have obtained as file.
         /// </summary>
         internal static string Describe_Import {
             get {
@@ -375,7 +384,7 @@ namespace Compdfkit_Tools.Strings {
         }
         
         /// <summary>
-        ///   Looks up a localized string similar to Use a Digital ID from A File.
+        ///   Looks up a localized string similar to Use A Digital ID from A File.
         /// </summary>
         internal static string Option_FileID {
             get {
@@ -465,7 +474,43 @@ namespace Compdfkit_Tools.Strings {
         }
         
         /// <summary>
-        ///   Looks up a localized string similar to Algorithm:.
+        ///   Looks up a localized string similar to I am approving the document.
+        /// </summary>
+        internal static string Reason_Approving {
+            get {
+                return ResourceManager.GetString("Reason_Approving", resourceCulture);
+            }
+        }
+        
+        /// <summary>
+        ///   Looks up a localized string similar to &lt; None &gt;.
+        /// </summary>
+        internal static string Reason_None {
+            get {
+                return ResourceManager.GetString("Reason_None", resourceCulture);
+            }
+        }
+        
+        /// <summary>
+        ///   Looks up a localized string similar to I am the owner of the document.
+        /// </summary>
+        internal static string Reason_Owner {
+            get {
+                return ResourceManager.GetString("Reason_Owner", resourceCulture);
+            }
+        }
+        
+        /// <summary>
+        ///   Looks up a localized string similar to I have reviewed this document.
+        /// </summary>
+        internal static string Reason_Reviewed {
+            get {
+                return ResourceManager.GetString("Reason_Reviewed", resourceCulture);
+            }
+        }
+        
+        /// <summary>
+        ///   Looks up a localized string similar to Algorithm: .
         /// </summary>
         internal static string Text_Algorithm {
             get {
@@ -510,7 +555,7 @@ namespace Compdfkit_Tools.Strings {
         }
         
         /// <summary>
-        ///   Looks up a localized string similar to Date:.
+        ///   Looks up a localized string similar to Date: .
         /// </summary>
         internal static string Text_Date {
             get {
@@ -573,7 +618,7 @@ namespace Compdfkit_Tools.Strings {
         }
         
         /// <summary>
-        ///   Looks up a localized string similar to Issued to:.
+        ///   Looks up a localized string similar to Issued to: .
         /// </summary>
         internal static string Text_IssuedTo {
             get {
@@ -582,7 +627,7 @@ namespace Compdfkit_Tools.Strings {
         }
         
         /// <summary>
-        ///   Looks up a localized string similar to Issuer:.
+        ///   Looks up a localized string similar to Issuer: .
         /// </summary>
         internal static string Text_Issuer {
             get {
@@ -591,7 +636,7 @@ namespace Compdfkit_Tools.Strings {
         }
         
         /// <summary>
-        ///   Looks up a localized string similar to Issuer‘s Key Identifier:.
+        ///   Looks up a localized string similar to Issuer‘s Key Identifier: .
         /// </summary>
         internal static string Text_IssuerID {
             get {
@@ -600,7 +645,7 @@ namespace Compdfkit_Tools.Strings {
         }
         
         /// <summary>
-        ///   Looks up a localized string similar to Issuer Information Access:.
+        ///   Looks up a localized string similar to Issuer Information Access: .
         /// </summary>
         internal static string Text_IssuerInfo {
             get {
@@ -609,7 +654,7 @@ namespace Compdfkit_Tools.Strings {
         }
         
         /// <summary>
-        ///   Looks up a localized string similar to Key Usage:.
+        ///   Looks up a localized string similar to Key Usage: .
         /// </summary>
         internal static string Text_KeyUsage {
             get {
@@ -618,7 +663,7 @@ namespace Compdfkit_Tools.Strings {
         }
         
         /// <summary>
-        ///   Looks up a localized string similar to MD5 Digest:.
+        ///   Looks up a localized string similar to MD5 Digest: .
         /// </summary>
         internal static string Text_MD5 {
             get {
@@ -654,7 +699,7 @@ namespace Compdfkit_Tools.Strings {
         }
         
         /// <summary>
-        ///   Looks up a localized string similar to Public Key:.
+        ///   Looks up a localized string similar to Public Key: .
         /// </summary>
         internal static string Text_PubKey {
             get {
@@ -663,7 +708,7 @@ namespace Compdfkit_Tools.Strings {
         }
         
         /// <summary>
-        ///   Looks up a localized string similar to Serial Number:.
+        ///   Looks up a localized string similar to Serial Number: .
         /// </summary>
         internal static string Text_SerialNum {
             get {
@@ -672,7 +717,7 @@ namespace Compdfkit_Tools.Strings {
         }
         
         /// <summary>
-        ///   Looks up a localized string similar to SHA1 Digest:.
+        ///   Looks up a localized string similar to SHA1 Digest: .
         /// </summary>
         internal static string Text_SHA1 {
             get {
@@ -717,7 +762,7 @@ namespace Compdfkit_Tools.Strings {
         }
         
         /// <summary>
-        ///   Looks up a localized string similar to Signed by:.
+        ///   Looks up a localized string similar to Signed by: .
         /// </summary>
         internal static string Text_Signer {
             get {
@@ -789,7 +834,7 @@ namespace Compdfkit_Tools.Strings {
         }
         
         /// <summary>
-        ///   Looks up a localized string similar to Status:.
+        ///   Looks up a localized string similar to Status: .
         /// </summary>
         internal static string Text_Status {
             get {
@@ -798,7 +843,7 @@ namespace Compdfkit_Tools.Strings {
         }
         
         /// <summary>
-        ///   Looks up a localized string similar to Subject:.
+        ///   Looks up a localized string similar to Subject: .
         /// </summary>
         internal static string Text_Subject {
             get {
@@ -807,7 +852,7 @@ namespace Compdfkit_Tools.Strings {
         }
         
         /// <summary>
-        ///   Looks up a localized string similar to Subject‘s Key Identifier:.
+        ///   Looks up a localized string similar to Subject‘s Key Identifier: .
         /// </summary>
         internal static string Text_SubjectID {
             get {
@@ -843,7 +888,7 @@ namespace Compdfkit_Tools.Strings {
         }
         
         /// <summary>
-        ///   Looks up a localized string similar to Intended Usage:.
+        ///   Looks up a localized string similar to Intended Usage: .
         /// </summary>
         internal static string Text_Usage {
             get {
@@ -861,7 +906,7 @@ namespace Compdfkit_Tools.Strings {
         }
         
         /// <summary>
-        ///   Looks up a localized string similar to Valid from:.
+        ///   Looks up a localized string similar to Valid from: .
         /// </summary>
         internal static string Text_ValidFrom {
             get {
@@ -870,7 +915,7 @@ namespace Compdfkit_Tools.Strings {
         }
         
         /// <summary>
-        ///   Looks up a localized string similar to Valid to:.
+        ///   Looks up a localized string similar to Valid to: .
         /// </summary>
         internal static string Text_ValidTo {
             get {
@@ -879,7 +924,7 @@ namespace Compdfkit_Tools.Strings {
         }
         
         /// <summary>
-        ///   Looks up a localized string similar to Version:.
+        ///   Looks up a localized string similar to Version: .
         /// </summary>
         internal static string Text_Version {
             get {
@@ -906,7 +951,7 @@ namespace Compdfkit_Tools.Strings {
         }
         
         /// <summary>
-        ///   Looks up a localized string similar to X.509 Data:.
+        ///   Looks up a localized string similar to X.509 Data: .
         /// </summary>
         internal static string Text_X509 {
             get {
@@ -950,15 +995,6 @@ namespace Compdfkit_Tools.Strings {
             }
         }
         
-        /// <summary>
-        ///   Looks up a localized string similar to Create A Self-Signed Digital ID.
-        /// </summary>
-        internal static string Tip_CreateID {
-            get {
-                return ResourceManager.GetString("Tip_CreateID", resourceCulture);
-            }
-        }
-        
         /// <summary>
         ///   Looks up a localized string similar to Date.
         /// </summary>
@@ -1095,7 +1131,7 @@ namespace Compdfkit_Tools.Strings {
         }
         
         /// <summary>
-        ///   Looks up a localized string similar to Position.
+        ///   Looks up a localized string similar to Location.
         /// </summary>
         internal static string Tip_Position {
             get {
@@ -1220,6 +1256,15 @@ namespace Compdfkit_Tools.Strings {
             }
         }
         
+        /// <summary>
+        ///   Looks up a localized string similar to Create A Self-Signed Digital ID.
+        /// </summary>
+        internal static string Title_CreateID {
+            get {
+                return ResourceManager.GetString("Title_CreateID", resourceCulture);
+            }
+        }
+        
         /// <summary>
         ///   Looks up a localized string similar to Select a type of Digital ID..
         /// </summary>
@@ -1238,6 +1283,15 @@ namespace Compdfkit_Tools.Strings {
             }
         }
         
+        /// <summary>
+        ///   Looks up a localized string similar to Save the Self-Signed Digital ID to A File.
+        /// </summary>
+        internal static string Title_SaveSig {
+            get {
+                return ResourceManager.GetString("Title_SaveSig", resourceCulture);
+            }
+        }
+        
         /// <summary>
         ///   Looks up a localized string similar to Digital Signature Details.
         /// </summary>

+ 43 - 25
Demo/Examples/Compdfkit_Tools/Strings/Signature.resx

@@ -25,7 +25,7 @@
         <value>Select a type of Digital ID.</value>
     </data>
     <data name="Option_FileID" xml:space="preserve">
-        <value>Use a Digital ID from A File</value>
+        <value>Use A Digital ID from A File</value>
     </data>
     <data name="Tip_ID" xml:space="preserve">
         <value>A digital ID is required to create a digital signature. The most secure Digital ID is issued by trusted Certificate authorities and is based on secure devices like smart cards or tokens. Some are based on a file.</value>
@@ -103,7 +103,7 @@
         <value>Logo</value>
     </data>
     <data name="Tip_Position" xml:space="preserve">
-        <value>Position</value>
+        <value>Location</value>
     </data>
     <data name="Tip_Reason" xml:space="preserve">
         <value>Reason</value>
@@ -126,7 +126,7 @@
     <data name="Tip_DrawOK" xml:space="preserve">
         <value>OK</value>
     </data>
-    <data name="Tip_CreateID" xml:space="preserve">
+    <data name="Title_CreateID" xml:space="preserve">
         <value>Create A Self-Signed Digital ID</value>
     </data>
     <data name="Tip_IDWarning" xml:space="preserve">
@@ -241,13 +241,13 @@
         <value>Draw Your Signature</value>
     </data>
     <data name="Text_Signer" xml:space="preserve">
-        <value>Signed by:</value>
+        <value>Signed by: </value>
     </data>
     <data name="Text_Date" xml:space="preserve">
-        <value>Date:</value>
+        <value>Date: </value>
     </data>
     <data name="Text_Status" xml:space="preserve">
-        <value>Status:</value>
+        <value>Status: </value>
     </data>
     <data name="Text_SignerValid" xml:space="preserve">
         <value>The signer's identity is valid.</value>
@@ -340,19 +340,19 @@
         <value>Summary</value>
     </data>
     <data name="Text_IssuedTo" xml:space="preserve">
-        <value>Issued to:</value>
+        <value>Issued to: </value>
     </data>
     <data name="Text_Issuer" xml:space="preserve">
-        <value>Issuer:</value>
+        <value>Issuer: </value>
     </data>
     <data name="Text_ValidFrom" xml:space="preserve">
-        <value>Valid from:</value>
+        <value>Valid from: </value>
     </data>
     <data name="Text_ValidTo" xml:space="preserve">
-        <value>Valid to:</value>
+        <value>Valid to: </value>
     </data>
     <data name="Text_Usage" xml:space="preserve">
-        <value>Intended Usage:</value>
+        <value>Intended Usage: </value>
     </data>
     <data name="Unknown_7" xml:space="preserve">
         <value>Digital Signature, Non-Repudiation
@@ -366,16 +366,16 @@ Email Protection</value>
         <value>Details</value>
     </data>
     <data name="Text_Version" xml:space="preserve">
-        <value>Version:</value>
+        <value>Version: </value>
     </data>
     <data name="Text_Algorithm" xml:space="preserve">
-        <value>Algorithm:</value>
+        <value>Algorithm: </value>
     </data>
     <data name="Text_Subject" xml:space="preserve">
-        <value>Subject:</value>
+        <value>Subject: </value>
     </data>
     <data name="Text_SerialNum" xml:space="preserve">
-        <value>Serial Number:</value>
+        <value>Serial Number: </value>
     </data>
     <data name="Text_CertPolicy" xml:space="preserve">
         <value>Certificate Policy:</value>
@@ -384,31 +384,31 @@ Email Protection</value>
         <value>CRL Distribution Points:</value>
     </data>
     <data name="Text_IssuerInfo" xml:space="preserve">
-        <value>Issuer Information Access:</value>
+        <value>Issuer Information Access: </value>
     </data>
     <data name="Text_IssuerID" xml:space="preserve">
-        <value>Issuer‘s Key Identifier:</value>
+        <value>Issuer‘s Key Identifier: </value>
     </data>
     <data name="Text_SubjectID" xml:space="preserve">
-        <value>Subject‘s Key Identifier:</value>
+        <value>Subject‘s Key Identifier: </value>
     </data>
     <data name="Text_BasicConstraints" xml:space="preserve">
         <value>Basic Constraints:</value>
     </data>
     <data name="Text_KeyUsage" xml:space="preserve">
-        <value>Key Usage:</value>
+        <value>Key Usage: </value>
     </data>
     <data name="Text_PubKey" xml:space="preserve">
-        <value>Public Key:</value>
+        <value>Public Key: </value>
     </data>
     <data name="Text_X509" xml:space="preserve">
-        <value>X.509 Data:</value>
+        <value>X.509 Data: </value>
     </data>
     <data name="Text_SHA1" xml:space="preserve">
-        <value>SHA1 Digest:</value>
+        <value>SHA1 Digest: </value>
     </data>
     <data name="Text_MD5" xml:space="preserve">
-        <value>MD5 Digest:</value>
+        <value>MD5 Digest: </value>
     </data>
     <data name="Title_Trust" xml:space="preserve">
         <value>Trust</value>
@@ -433,10 +433,10 @@ Perform privileged system operations (networking, printing, file access, etc.)</
         <value>Signature Information</value>
     </data>
     <data name="Describe_Import" xml:space="preserve">
-        <value> Import an existing Digital ID that you have obtained as file</value>
+        <value>Import an existing Digital ID that you have obtained as file</value>
     </data>
     <data name="Describe_Create" xml:space="preserve">
-        <value> Create your self-signed Digital ID</value>
+        <value>Create your self-signed Digital ID</value>
     </data>
     <data name="Button_Save" xml:space="preserve">
         <value>Save</value>
@@ -504,4 +504,22 @@ Perform privileged system operations (networking, printing, file access, etc.)</
     <data name="Title_Sig" xml:space="preserve">
         <value>Digital Signature Details</value>
     </data>
+    <data name="Title_SaveSig" xml:space="preserve">
+        <value>Save the Self-Signed Digital ID to A File</value>
+    </data>
+    <data name="Reason_Owner" xml:space="preserve">
+        <value>I am the owner of the document</value>
+    </data>
+    <data name="Reason_Approving" xml:space="preserve">
+        <value>I am approving the document</value>
+    </data>
+    <data name="Reason_Reviewed" xml:space="preserve">
+        <value>I have reviewed this document</value>
+    </data>
+    <data name="Reason_None" xml:space="preserve">
+        <value>&lt; None &gt;</value>
+    </data>
+    <data name="Cmb_Reason" xml:space="preserve">
+        <value>Reason: </value>
+    </data>
 </root>

+ 20 - 2
Demo/Examples/Compdfkit_Tools/Strings/Signature.zh.resx

@@ -81,7 +81,7 @@
         <value>包含文本</value>
     </data>
     <data name="Tip_Name" xml:space="preserve">
-        <value>名</value>
+        <value>名</value>
     </data>
     <data name="Tip_DN" xml:space="preserve">
         <value>辨别名</value>
@@ -119,7 +119,7 @@
     <data name="Tip_DrawOK" xml:space="preserve">
         <value>确定</value>
     </data>
-    <data name="Tip_CreateID" xml:space="preserve">
+    <data name="Title_CreateID" xml:space="preserve">
         <value>创建自签名数字身份证</value>
     </data>
     <data name="Tip_IDWarning" xml:space="preserve">
@@ -499,4 +499,22 @@ JavaScript 脚本
     <data name="Title_Sig" xml:space="preserve">
         <value>数字签名详细信息</value>
     </data>
+    <data name="Title_SaveSig" xml:space="preserve">
+        <value>保存自签名数字身份证到文件中</value>
+    </data>
+    <data name="Reason_Approving" xml:space="preserve">
+        <value>我正在批准该文档</value>
+    </data>
+    <data name="Reason_None" xml:space="preserve">
+        <value>&lt; 无 &gt;</value>
+    </data>
+    <data name="Reason_Owner" xml:space="preserve">
+        <value>我是该文档的作者</value>
+    </data>
+    <data name="Reason_Reviewed" xml:space="preserve">
+        <value>我已审阅该文档</value>
+    </data>
+    <data name="Cmb_Reason" xml:space="preserve">
+        <value>签署原因:</value>
+    </data>
 </root>

+ 2 - 1
Demo/Examples/Compdfkit_Tools/Watermark/AddWatermark/WatermarkListDialog.xaml.cs

@@ -81,7 +81,8 @@ namespace Compdfkit_Tools.PDFControl
                         {
                             return;
                         }
-                        string savePath = Path.Combine(path, Path.GetFileNameWithoutExtension(fileInfo.Document.FileName) + "_Watermark.pdf");
+                        string savePath = Path.Combine(path, Path.GetFileNameWithoutExtension(fileInfo.Document.FileName) + "_" 
+                            + LanguageHelper.SecurityManager.GetString("FileName_Watermark"));
                         fileInfo.Document.WriteToFilePath(savePath);
                     }
                     System.Diagnostics.Process.Start("explorer.exe", "/select," + path + Path.DirectorySeparatorChar + Path.GetFileNameWithoutExtension(FileGridListWithPageRangeControl.FileInfoDataList[0].Document.FileName) + "_Watermark.pdf");

+ 16 - 4
Demo/Examples/Compdfkit_Tools/Watermark/RemoveWatermark/RemoveWatermarkListControl.xaml

@@ -51,9 +51,21 @@
                                ScrollViewer.CanContentScroll="False" HorizontalScrollBarVisibility="Auto" SelectionChanged="FileDataGrid_SelectionChanged"
                               MouseLeftButtonDown="FileDataGrid_MouseLeftButtonDown">
                         <DataGrid.Columns>
-                            <DataGridTextColumn Header="File" Width="*" Binding="{Binding Name}" />
-                            <DataGridTextColumn Header="Size" Width="*" Binding="{Binding Size}" />
-                            <DataGridTextColumn Header="Location" Width="*" Binding="{Binding Path}" />
+                            <DataGridTextColumn Width="*" Binding="{Binding Name}" >
+                                <DataGridTextColumn.Header>
+                                    <TextBlock Text="{Binding Converter={StaticResource SecurityResourceConverter},ConverterParameter=Table_FileName}"/>
+                                </DataGridTextColumn.Header>
+                            </DataGridTextColumn>
+                            <DataGridTextColumn Width="*" Binding="{Binding Size}">
+                                <DataGridTextColumn.Header>
+                                    <TextBlock Text="{Binding Converter={StaticResource SecurityResourceConverter},ConverterParameter=Table_FileSize}"/>
+                                </DataGridTextColumn.Header>
+                            </DataGridTextColumn>
+                            <DataGridTextColumn Width="*" Binding="{Binding Path}">
+                                <DataGridTextColumn.Header>
+                                    <TextBlock Text="{Binding Converter={StaticResource SecurityResourceConverter},ConverterParameter=Table_Path}"/>
+                                </DataGridTextColumn.Header>
+                            </DataGridTextColumn>
                         </DataGrid.Columns>
                         <DataGrid.Resources>
                             <Style TargetType="DataGrid">
@@ -81,7 +93,7 @@
                     </DataGrid>
                 </Grid>
                 <StackPanel Grid.Row="1" Orientation="Horizontal">
-                    <Button x:Name="RemoveBtn" FontFamily="Microsoft YaHei" FontSize="14" Content="{Binding Converter={StaticResource SecurityResourceConverter}, ConverterParameter=Button_RemoveAll}" Width="112" Height="32" HorizontalAlignment="Left" Click="RemoveBtn_Click"></Button>
+                    <Button x:Name="RemoveBtn" FontFamily="Microsoft YaHei" FontSize="14" Content="{Binding Converter={StaticResource SecurityResourceConverter}, ConverterParameter=Button_RemoveAll}" Padding="5,0,5,0" Height="32" HorizontalAlignment="Left" Click="RemoveBtn_Click"></Button>
                 </StackPanel>
             </Grid>
         </Border>

+ 2 - 1
Demo/Examples/Compdfkit_Tools/Watermark/RemoveWatermark/RemoveWatermarkListDialog.xaml.cs

@@ -46,7 +46,8 @@ namespace Compdfkit_Tools.PDFControl {
                 foreach (var fileInfo in RemoveWatermarkListControl.FileInfoDataList)
                 {
                     fileInfo.Document.DeleteWatermarks();
-                    string savePath = Path.Combine(path, Path.GetFileNameWithoutExtension(fileInfo.Document.FileName) + "_RemoveWatermark.pdf");
+                    string savePath = Path.Combine(path, Path.GetFileNameWithoutExtension(fileInfo.Document.FileName) + "_"
+                        + LanguageHelper.SecurityManager.GetString("FileName_RemoveWatermark"));
                     fileInfo.Document.WriteToFilePath(savePath);
                 }
                 System.Diagnostics.Process.Start(path);