Browse Source

Merge branch 'dev' of http://git.kdan.cc:8865/Windows/PDFOffice_Windows_exe into dev

# Conflicts:
#	PDF Office/ViewModels/ViewContentViewModel.cs
OYXH\oyxh 2 years ago
parent
commit
7f23787f99
60 changed files with 3064 additions and 122 deletions
  1. 6 0
      PDF Office/App.config
  2. 29 0
      PDF Office/App.xaml.cs
  3. 10 9
      PDF Office/CustomControl/ColorDropBoxPop.xaml
  4. 3 2
      PDF Office/CustomControl/CompositeControl/ColorContent.xaml
  5. 2 1
      PDF Office/CustomControl/CompositeControl/SlidContentPop.xaml
  6. 2 1
      PDF Office/Helper/SettingHelper.cs
  7. 47 0
      PDF Office/Model/Dialog/GuidItemModel.cs
  8. 5 1
      PDF Office/Model/DialogNames.cs
  9. 284 0
      PDF Office/MultilingualResources/PDF Office.en.xlf
  10. 284 0
      PDF Office/MultilingualResources/PDF Office.zh-Hans.xlf
  11. 284 0
      PDF Office/MultilingualResources/PDF Office.zh-Hant.xlf
  12. 27 0
      PDF Office/PDF Office.csproj
  13. 25 1
      PDF Office/Properties/Settings.Designer.cs
  14. 6 0
      PDF Office/Properties/Settings.settings
  15. BIN
      PDF Office/Resources/GuidItems/Guid_Annote.png
  16. BIN
      PDF Office/Resources/GuidItems/Guid_Convert.png
  17. BIN
      PDF Office/Resources/GuidItems/Guid_FillAndSign.png
  18. BIN
      PDF Office/Resources/GuidItems/Guid_Office.png
  19. BIN
      PDF Office/Resources/GuidItems/Guid_SignUp.png
  20. BIN
      PDF Office/Resources/GuidPDF/Quick Start Guide.pdf
  21. 612 0
      PDF Office/Strings/MainPage/MainPage.Designer.cs
  22. 216 0
      PDF Office/Strings/MainPage/MainPage.resx
  23. 3 0
      PDF Office/Styles/ButtonStyle.xaml
  24. 5 5
      PDF Office/Styles/ContextMenuStyle.xaml
  25. 97 0
      PDF Office/ViewModels/BOTA/AnnotationContentViewModel.cs
  26. 24 0
      PDF Office/ViewModels/BOTA/BOTAContentViewModel.cs
  27. 34 1
      PDF Office/ViewModels/BOTA/BookmarkContentViewModel.cs
  28. 82 0
      PDF Office/ViewModels/Dialog/BOTA/ScreenAnnotationDialogViewModel.cs
  29. 188 0
      PDF Office/ViewModels/Dialog/NoviceGuidDialogViewModel.cs
  30. 94 0
      PDF Office/ViewModels/Dialog/ToolsDialogs/CompressDialogs/CompressDialogViewModel.cs
  31. 37 1
      PDF Office/ViewModels/Dialog/ToolsDialogs/SaftyDialogs/DeleteSafetySettingsDialogViewModel.cs
  32. 98 3
      PDF Office/ViewModels/Dialog/ToolsDialogs/SaftyDialogs/SetPasswordDialogViewModel.cs
  33. 26 4
      PDF Office/ViewModels/MainWindowViewModel.cs
  34. 1 1
      PDF Office/ViewModels/PageEdit/PageEditContentViewModel.cs
  35. 11 0
      PDF Office/ViewModels/PropertyPanel/AnnotPanel/FreehandAnnotPropertyViewModel.cs
  36. 46 0
      PDF Office/ViewModels/PropertyPanel/AnnotPanel/FreetextAnnotPropertyViewModel.cs
  37. 34 0
      PDF Office/ViewModels/PropertyPanel/AnnotPanel/LinkAnnotPropertyViewModel.cs
  38. 3 3
      PDF Office/ViewModels/PropertyPanel/AnnotPanel/TextAnnotPropertyViewModel.cs
  39. 34 0
      PDF Office/ViewModels/Tools/ToolsBarContentViewModel.cs
  40. 16 2
      PDF Office/ViewModels/ViewContentViewModel.cs
  41. 7 7
      PDF Office/Views/BOTA/AnnotationContent.xaml
  42. 4 2
      PDF Office/Views/BOTA/BOTAContent.xaml
  43. 6 5
      PDF Office/Views/BOTA/BookmarkContent.xaml
  44. 6 6
      PDF Office/Views/Dialog/BOTA/ScreenAnnotationDialog.xaml
  45. 232 0
      PDF Office/Views/Dialog/NoviceGuidDialog.xaml
  46. 28 0
      PDF Office/Views/Dialog/NoviceGuidDialog.xaml.cs
  47. 8 8
      PDF Office/Views/Dialog/ToolsDialogs/CompressDialogs/CompressDialog.xaml
  48. 2 2
      PDF Office/Views/Dialog/ToolsDialogs/SaftyDialogs/DeleteSafetySettingsDialog.xaml
  49. 7 7
      PDF Office/Views/Dialog/ToolsDialogs/SaftyDialogs/SetPasswordDialog.xaml
  50. 34 19
      PDF Office/Views/HomePanel/RecentFiles/DocItemControl.xaml
  51. 6 0
      PDF Office/Views/HomePanel/RecentFiles/DocItemControl.xaml.cs
  52. 19 9
      PDF Office/Views/HomePanel/RecentFiles/DocItemListViewControl.xaml
  53. 5 0
      PDF Office/Views/HomePanel/RecentFiles/DocItemListViewControl.xaml.cs
  54. 9 8
      PDF Office/Views/PageEdit/PageEditContent.xaml
  55. 1 1
      PDF Office/Views/PropertyPanel/AnnotPanel/FreehandAnnotProperty.xaml
  56. 4 4
      PDF Office/Views/PropertyPanel/AnnotPanel/FreetextAnnotProperty.xaml
  57. 3 4
      PDF Office/Views/PropertyPanel/AnnotPanel/LinkAnnotProperty.xaml
  58. 2 1
      PDF Office/Views/PropertyPanel/AnnotPanel/TextAnnotProperty.xaml
  59. 3 3
      PDF Office/Views/Tools/ToolsBarContent.xaml
  60. 3 1
      PDFSettings/RecentOpenFiles.cs

+ 6 - 0
PDF Office/App.config

@@ -33,6 +33,12 @@
       <setting name="UpdateSettings" serializeAs="String">
         <value>True</value>
       </setting>
+      <setting name="IsNewUser" serializeAs="String">
+        <value>True</value>
+      </setting>
+      <setting name="IsGuidPDFUpdated" serializeAs="String">
+        <value>True</value>
+      </setting>
     </PDF_Office.Properties.Settings>
   </userSettings>
 </configuration>

+ 29 - 0
PDF Office/App.xaml.cs

@@ -71,6 +71,16 @@ namespace PDF_Office
     {
         public static string CurrentPath = System.IO.Path.Combine(Environment.GetFolderPath(Environment.SpecialFolder.Personal), "PDF Office");
 
+        /// <summary>
+        /// 内嵌文档路径
+        /// </summary>
+        public static string GuidPDFPath = Path.Combine(Environment.CurrentDirectory, "Resources//GuidPDF//Quick Start Guide.pdf");
+
+        /// <summary>
+        /// 是否需要更新内嵌文档
+        /// </summary>
+        public static bool IsGuidPDFUpdated = false;
+
         /// <summary>
         /// 产品名称
         /// </summary>
@@ -130,8 +140,18 @@ namespace PDF_Office
 
         private void InitSettings()
         {
+
+            //是否是更新后
             if (Settings.Default.UpdateSettings)
             {
+                //内嵌文档更新时 显示文档到最前方
+                //每次版本更新留意检查IsGuidPDFUpdated 值,如果没有内嵌文档更新,要设为false
+                if (Settings.Default.IsGuidPDFUpdated && File.Exists(GuidPDFPath))
+                {
+                    App.IsGuidPDFUpdated = true;
+                    Settings.Default.IsGuidPDFUpdated = false;
+                }
+
                 Settings.Default.Upgrade();
                 Settings.Default.UpdateSettings = false;
                 App.IsShowRegist = true;
@@ -139,7 +159,9 @@ namespace PDF_Office
             }
 
             if (Settings.Default.RecentOpenFiles == null)
+            {
                 Settings.Default.RecentOpenFiles = new RecentOpenFiles();
+            }
 
             if (Settings.Default.RedactionsSettings == null)
                 Settings.Default.RedactionsSettings = new PDFSettings.RedactionSettings();
@@ -152,6 +174,11 @@ namespace PDF_Office
 
             if (Settings.Default.QuickPDFToolsList == null)
                 Settings.Default.QuickPDFToolsList = new PDFSettings.QuickPDFToolsList();
+
+            if(App.IsGuidPDFUpdated)
+            {
+                SettingHelper.SortRecentOpenFiles(GuidPDFPath);
+            }
         }
 
         protected override void OnStartup(StartupEventArgs e)
@@ -417,6 +444,8 @@ namespace PDF_Office
             containerRegistry.RegisterDialog<LoginDialog>(DialogNames.LoginDialog);
             containerRegistry.RegisterDialog<UserDialog>(DialogNames.UserDialog);
 
+            //新手引导弹窗
+            containerRegistry.RegisterDialog<NoviceGuidDialog>(DialogNames.GuidDialog);
             #endregion 注册弹窗
         }
 

+ 10 - 9
PDF Office/CustomControl/ColorDropBoxPop.xaml

@@ -5,6 +5,7 @@
     xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
     xmlns:local="clr-namespace:PDF_Office.CustomControl"
     xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
+    xmlns:mainpage="clr-namespace:PDF_Office.Strings.MainPage"
     Width="194"
     Height="auto"
     d:DesignHeight="450"
@@ -50,9 +51,9 @@
                     VerticalAlignment="Bottom"
                     FontFamily="Segoe UI"
                     FontSize="14"
-                    LineHeight="20">
-                    Recently used color
-                </TextBlock>
+                    LineHeight="20"
+                    Text="{x:Static mainpage:MainPage.Palette_Recently}"
+                    />
                 <ListView
                     Name="RecentlyColorList"
                     Grid.Row="1"
@@ -80,9 +81,9 @@
                     Margin="8,5,0,1"
                     FontFamily="SegoeUI"
                     FontSize="14"
-                    LineHeight="20">
-                    Theme colors
-                </TextBlock>
+                    LineHeight="20"
+                    Text="{x:Static mainpage:MainPage.Palette_Color}"
+                    />
                 <ListView
                     Name="ThemeColorList"
                     Grid.Row="3"
@@ -182,9 +183,9 @@
                         Margin="0,0,0,8"
                         VerticalAlignment="Center"
                         FontFamily="Segoe UI"
-                        FontSize="14">
-                        Other Colors
-                    </TextBlock>
+                        FontSize="14"
+                        Text="{x:Static mainpage:MainPage.Palette_More}"
+                        />
                 </StackPanel>
             </Grid>
         </Border>

+ 3 - 2
PDF Office/CustomControl/CompositeControl/ColorContent.xaml

@@ -7,6 +7,7 @@
     xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
     xmlns:local="clr-namespace:PDF_Office.CustomControl.CompositeControl"
     xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
+    xmlns:mainpage="clr-namespace:PDF_Office.Strings.MainPage"
     d:DesignHeight="450"
     d:DesignWidth="800"
     mc:Ignorable="d">
@@ -44,12 +45,12 @@
                 <MenuItem
                     Name="ChangeColorMenuItem"
                     Click="ChangeColorMenuItem_Click"
-                    Header="更改颜色"
+                    Header="{x:Static mainpage:MainPage.ColorMenuItem_Change}"
                     IsEnabled="True" />
                 <MenuItem
                     Name="BackColorMenuItem"
                     Click="BackColorMenuItem_Click"
-                    Header="恢复默认颜色"
+                    Header="{x:Static mainpage:MainPage.ColorMenuItem_Restore}"
                     IsEnabled="True" />
             </ContextMenu>
 

+ 2 - 1
PDF Office/CustomControl/CompositeControl/SlidContentPop.xaml

@@ -4,6 +4,7 @@
              xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006" 
              xmlns:d="http://schemas.microsoft.com/expression/blend/2008" 
              xmlns:local="clr-namespace:PDF_Office.CustomControl.CompositeControl"
+             xmlns:mainpage="clr-namespace:PDF_Office.Strings.MainPage"
              mc:Ignorable="d" 
              x:Name="usercontorls"
              d:DesignHeight="450" d:DesignWidth="800">
@@ -29,7 +30,7 @@
                 <RowDefinition Height="Auto"/>
                 <RowDefinition/>
             </Grid.RowDefinitions>
-            <TextBlock Text="toumingdu" Margin="8,12,0,0"/>
+            <TextBlock Text="{x:Static mainpage:MainPage.Opacity_Title}" Margin="8,12,0,0"/>
             <Grid Grid.Row="1">
                 <Grid.ColumnDefinitions>
                     <ColumnDefinition />

+ 2 - 1
PDF Office/Helper/SettingHelper.cs

@@ -48,8 +48,9 @@ namespace PDF_Office.Helper
             else
             {
                 OpenFileInfo fileInfo = new OpenFileInfo();
-                fileInfo.FileName = filePath.Substring(filePath.LastIndexOf("\\") + 1);
+                fileInfo.FileName = Path.GetFileName(filePath);
                 fileInfo.FilePath = filePath;
+                fileInfo.IsGuidPDF = string.Equals(filePath, App.GuidPDFPath);
                 fileInfo.ThumbImgPath = "";
                 fileInfo.LastOpenTime = DateTime.Now;
                 PDF_Office.Properties.Settings.Default.RecentOpenFiles.Insert(0, fileInfo);

+ 47 - 0
PDF Office/Model/Dialog/GuidItemModel.cs

@@ -0,0 +1,47 @@
+using Prism.Mvvm;
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+
+namespace PDF_Office.Model.Dialog
+{
+    public class GuidItemModel:BindableBase
+    {
+        private string title;
+
+        public string Title
+        {
+            get { return title; }
+            set
+            {
+                SetProperty(ref title, value);
+            }
+        }
+
+        private string content;
+        /// <summary>
+        /// 文案内容
+        /// </summary>
+        public string Content
+        {
+            get { return content; }
+            set
+            {
+                SetProperty(ref content, value);
+            }
+        }
+
+        private string imageSource;
+        //图片路径
+        public string ImageSource
+        {
+            get { return imageSource; }
+            set
+            {
+                SetProperty(ref imageSource, value);
+            }
+        }
+    }
+}

+ 5 - 1
PDF Office/Model/DialogNames.cs

@@ -11,6 +11,11 @@ namespace PDF_Office.Model
     /// </summary>
     public static class DialogNames
     {
+        /// <summary>
+        /// 新手引导弹窗
+        /// </summary>
+        public static string GuidDialog = "GuidDialog";
+
         /// <summary>
         /// 注册弹窗
         /// </summary>
@@ -26,7 +31,6 @@ namespace PDF_Office.Model
         /// </summary>
         public static string UserDialog = "UserDialog";
 
-
         /// <summary>
         /// 文档属性
         /// </summary>

+ 284 - 0
PDF Office/MultilingualResources/PDF Office.en.xlf

@@ -656,6 +656,290 @@ Drag files to reorder as you need.</target>
           <target state="new">Page {0}</target>
           <note from="MultilingualBuild" annotates="source" priority="2">第N页</note>
         </trans-unit>
+        <trans-unit id="Bookmark_EmptyContext" translate="yes" xml:space="preserve">
+          <source>Please right-click on the selected page and select "Add Bookmark", or click the "Add" button on the upper right to create a bookmark.</source>
+          <target state="new">Please right-click on the selected page and select "Add Bookmark", or click the "Add" button on the upper right to create a bookmark.</target>
+        </trans-unit>
+        <trans-unit id="Bookmark_EmptyTitle" translate="yes" xml:space="preserve">
+          <source>No Bookmarks</source>
+          <target state="new">No Bookmarks</target>
+        </trans-unit>
+        <trans-unit id="Annotation_DialogClear" translate="yes" xml:space="preserve">
+          <source>Clear</source>
+          <target state="new">Clear</target>
+        </trans-unit>
+        <trans-unit id="Annotation_DialogNo" translate="yes" xml:space="preserve">
+          <source>Cancel</source>
+          <target state="new">Cancel</target>
+        </trans-unit>
+        <trans-unit id="Annotation_DialogYes" translate="yes" xml:space="preserve">
+          <source>Apply</source>
+          <target state="new">Apply</target>
+        </trans-unit>
+        <trans-unit id="Annotation_Title" translate="yes" xml:space="preserve">
+          <source>Annotation</source>
+          <target state="new">Annotation</target>
+        </trans-unit>
+        <trans-unit id="Annotation_EmptyContext" translate="yes" xml:space="preserve">
+          <source>All comments in this file will be displayed here.</source>
+          <target state="new">All comments in this file will be displayed here.</target>
+        </trans-unit>
+        <trans-unit id="Annotation_EmptyTitle" translate="yes" xml:space="preserve">
+          <source>No Annotations</source>
+          <target state="new">No Annotations</target>
+        </trans-unit>
+        <trans-unit id="Annotation_MenuCollapse" translate="yes" xml:space="preserve">
+          <source>Collapse All</source>
+          <target state="new">Collapse All</target>
+        </trans-unit>
+        <trans-unit id="Annotation_MenuCopyText" translate="yes" xml:space="preserve">
+          <source>Copy Text</source>
+          <target state="new">Copy Text</target>
+        </trans-unit>
+        <trans-unit id="Annotation_MenuDelete" translate="yes" xml:space="preserve">
+          <source>Delete</source>
+          <target state="new">Delete</target>
+        </trans-unit>
+        <trans-unit id="Annotation_MenuDeleteAll" translate="yes" xml:space="preserve">
+          <source>Delete All Anntations</source>
+          <target state="new">Delete All Anntations</target>
+        </trans-unit>
+        <trans-unit id="Annotation_MenuExpand" translate="yes" xml:space="preserve">
+          <source>Expand All</source>
+          <target state="new">Expand All</target>
+        </trans-unit>
+        <trans-unit id="Annotation_MenuExport" translate="yes" xml:space="preserve">
+          <source>Export Annotations to XFDX</source>
+          <target state="new">Export Annotations to XFDX</target>
+          <note from="MultilingualBuild" annotates="source" priority="2">导出XFDF</note>
+        </trans-unit>
+        <trans-unit id="Annotation_MenuImport" translate="yes" xml:space="preserve">
+          <source>Import Annotations</source>
+          <target state="new">Import Annotations</target>
+          <note from="MultilingualBuild" annotates="source" priority="2">导入XFDF</note>
+        </trans-unit>
+        <trans-unit id="Annotation_DialogAuthor" translate="yes" xml:space="preserve">
+          <source>Author</source>
+          <target state="new">Author</target>
+        </trans-unit>
+        <trans-unit id="Annotation_DialogColor" translate="yes" xml:space="preserve">
+          <source>Color</source>
+          <target state="new">Color</target>
+        </trans-unit>
+        <trans-unit id="Annotation_DialogStyle" translate="yes" xml:space="preserve">
+          <source>Style</source>
+          <target state="new">Style</target>
+        </trans-unit>
+        <trans-unit id="Link_Page" translate="yes" xml:space="preserve">
+          <source>Page</source>
+          <target state="new">Page</target>
+        </trans-unit>
+        <trans-unit id="Link_Title" translate="yes" xml:space="preserve">
+          <source>Link</source>
+          <target state="new">Link</target>
+        </trans-unit>
+        <trans-unit id="ContentSelection_Copy" translate="yes" xml:space="preserve">
+          <source>Copy</source>
+          <target state="new">Copy</target>
+        </trans-unit>
+        <trans-unit id="ContentSelection_Crop" translate="yes" xml:space="preserve">
+          <source>Crop</source>
+          <target state="new">Crop</target>
+        </trans-unit>
+        <trans-unit id="ContentSelection_Output" translate="yes" xml:space="preserve">
+          <source>Output</source>
+          <target state="new">Output</target>
+        </trans-unit>
+        <trans-unit id="ContentSelection_Print" translate="yes" xml:space="preserve">
+          <source>Print</source>
+          <target state="new">Print</target>
+        </trans-unit>
+        <trans-unit id="ContentSelection_ZoomArea" translate="yes" xml:space="preserve">
+          <source>Zoom to Selected Area</source>
+          <target state="new">Zoom to Selected Area</target>
+        </trans-unit>
+        <trans-unit id="ColorMenuItem_Change" translate="yes" xml:space="preserve">
+          <source>Change Color</source>
+          <target state="new">Change Color</target>
+        </trans-unit>
+        <trans-unit id="ColorMenuItem_Restore" translate="yes" xml:space="preserve">
+          <source>Restore Default Color</source>
+          <target state="new">Restore Default Color</target>
+        </trans-unit>
+        <trans-unit id="Palette_Color" translate="yes" xml:space="preserve">
+          <source>Color</source>
+          <target state="new">Color</target>
+          <note from="MultilingualBuild" annotates="source" priority="2">调色板-主题颜色</note>
+        </trans-unit>
+        <trans-unit id="Palette_More" translate="yes" xml:space="preserve">
+          <source>More</source>
+          <target state="new">More</target>
+          <note from="MultilingualBuild" annotates="source" priority="2">调色板-其他颜色</note>
+        </trans-unit>
+        <trans-unit id="Palette_Recently" translate="yes" xml:space="preserve">
+          <source>Recently Used</source>
+          <target state="new">Recently Used</target>
+          <note from="MultilingualBuild" annotates="source" priority="2">调色板-最近使用的颜色</note>
+        </trans-unit>
+        <trans-unit id="Opacity_Title" translate="yes" xml:space="preserve">
+          <source>Opacity</source>
+          <target state="new">Opacity</target>
+          <note from="MultilingualBuild" annotates="source" priority="2">点击水滴按钮打开的透明度弹窗标题</note>
+        </trans-unit>
+        <trans-unit id="Highlight_Title" translate="yes" xml:space="preserve">
+          <source>Highlight</source>
+          <target state="new">Highlight</target>
+        </trans-unit>
+        <trans-unit id="Strikethrough_Title" translate="yes" xml:space="preserve">
+          <source>Strikethrough</source>
+          <target state="new">Strikethrough</target>
+        </trans-unit>
+        <trans-unit id="Underline_Title" translate="yes" xml:space="preserve">
+          <source>Underline</source>
+          <target state="new">Underline</target>
+        </trans-unit>
+        <trans-unit id="Sample" translate="yes" xml:space="preserve">
+          <source>Sample</source>
+          <target state="new">Sample</target>
+          <note from="MultilingualBuild" annotates="source" priority="2">高亮,删除线,下划线的示例文案</note>
+        </trans-unit>
+        <trans-unit id="FreeText_Fill" translate="yes" xml:space="preserve">
+          <source>Fill</source>
+          <target state="new">Fill</target>
+        </trans-unit>
+        <trans-unit id="FreeText_Font" translate="yes" xml:space="preserve">
+          <source>Font</source>
+          <target state="new">Font</target>
+        </trans-unit>
+        <trans-unit id="FreeText_Title" translate="yes" xml:space="preserve">
+          <source>Text</source>
+          <target state="new">Text</target>
+        </trans-unit>
+        <trans-unit id="PageEdit_Failed" translate="yes" xml:space="preserve">
+          <source>Failed to complete this operation.</source>
+          <target state="new">Failed to complete this operation.</target>
+        </trans-unit>
+        <trans-unit id="PageEdit_MenuCopy" translate="yes" xml:space="preserve">
+          <source>Copy</source>
+          <target state="new">Copy</target>
+        </trans-unit>
+        <trans-unit id="PageEdit_MenuCut" translate="yes" xml:space="preserve">
+          <source>Cut</source>
+          <target state="new">Cut</target>
+        </trans-unit>
+        <trans-unit id="PageEdit_MenuDelete" translate="yes" xml:space="preserve">
+          <source>Delete</source>
+          <target state="new">Delete</target>
+        </trans-unit>
+        <trans-unit id="PageEdit_MenuPaste" translate="yes" xml:space="preserve">
+          <source>Paste</source>
+          <target state="new">Paste</target>
+        </trans-unit>
+        <trans-unit id="PageEdit_MenuPrint" translate="yes" xml:space="preserve">
+          <source>Print</source>
+          <target state="new">Print</target>
+        </trans-unit>
+        <trans-unit id="PageEdit_MenuRotateClockwise" translate="yes" xml:space="preserve">
+          <source>Rotate Clockwise</source>
+          <target state="new">Rotate Clockwise</target>
+        </trans-unit>
+        <trans-unit id="PageEdit_MenuRotateCounterclockwise" translate="yes" xml:space="preserve">
+          <source>Rotate Counterclockwise</source>
+          <target state="new">Rotate Counterclockwise</target>
+        </trans-unit>
+        <trans-unit id="PageEdit_MenuShowPageSize" translate="yes" xml:space="preserve">
+          <source>Display Page Size</source>
+          <target state="new">Display Page Size</target>
+          <note from="MultilingualBuild" annotates="source" priority="2">显示页面大小</note>
+        </trans-unit>
+        <trans-unit id="Compress_High" translate="yes" xml:space="preserve">
+          <source>High</source>
+          <target state="new">High</target>
+        </trans-unit>
+        <trans-unit id="Compress_Low" translate="yes" xml:space="preserve">
+          <source>Low</source>
+          <target state="new">Low</target>
+        </trans-unit>
+        <trans-unit id="Compress_Minimum" translate="yes" xml:space="preserve">
+          <source>Minimum</source>
+          <target state="new">Minimum</target>
+        </trans-unit>
+        <trans-unit id="Compress_Standard" translate="yes" xml:space="preserve">
+          <source>Standard</source>
+          <target state="new">Standard</target>
+        </trans-unit>
+        <trans-unit id="Compress_Title" translate="yes" xml:space="preserve">
+          <source>Compress</source>
+          <target state="new">Compress</target>
+        </trans-unit>
+        <trans-unit id="Compress_Cancel" translate="yes" xml:space="preserve">
+          <source>Cancel</source>
+          <target state="new">Cancel</target>
+        </trans-unit>
+        <trans-unit id="Compress_Compress" translate="yes" xml:space="preserve">
+          <source>Compress</source>
+          <target state="new">Compress</target>
+        </trans-unit>
+        <trans-unit id="Security_RemovePassword" translate="yes" xml:space="preserve">
+          <source>Remove Passwords</source>
+          <target state="new">Remove Passwords</target>
+        </trans-unit>
+        <trans-unit id="Security_SetPassword" translate="yes" xml:space="preserve">
+          <source>Set Passwords</source>
+          <target state="new">Set Passwords</target>
+        </trans-unit>
+        <trans-unit id="SetPassword_Title" translate="yes" xml:space="preserve">
+          <source>Set Passwords</source>
+          <target state="new">Set Passwords</target>
+        </trans-unit>
+        <trans-unit id="SetPassword_No" translate="yes" xml:space="preserve">
+          <source>Cancel</source>
+          <target state="new">Cancel</target>
+        </trans-unit>
+        <trans-unit id="SetPassword_OpenEmptyText" translate="yes" xml:space="preserve">
+          <source>Open Password</source>
+          <target state="new">Open Password</target>
+          <note from="MultilingualBuild" annotates="source" priority="2">开启密码选项未输入内容提示文案</note>
+        </trans-unit>
+        <trans-unit id="SetPassword_OpenTitle" translate="yes" xml:space="preserve">
+          <source>Document Open Password</source>
+          <target state="new">Document Open Password</target>
+          <note from="MultilingualBuild" annotates="source" priority="2">设置开启密码选项标题</note>
+        </trans-unit>
+        <trans-unit id="SetPassword_PermissionEmptyText" translate="yes" xml:space="preserve">
+          <source>Permission Password</source>
+          <target state="new">Permission Password</target>
+          <note from="MultilingualBuild" annotates="source" priority="2">权限密码选项未输入内容提示文案</note>
+        </trans-unit>
+        <trans-unit id="SetPassword_PermissionTitle" translate="yes" xml:space="preserve">
+          <source>Document Permission Password</source>
+          <target state="new">Document Permission Password</target>
+          <note from="MultilingualBuild" annotates="source" priority="2">设置权限密码选项标题</note>
+        </trans-unit>
+        <trans-unit id="SetPassword_RestrictCopying" translate="yes" xml:space="preserve">
+          <source>Restrict content copying</source>
+          <target state="new">Restrict content copying</target>
+        </trans-unit>
+        <trans-unit id="SetPassword_RestrictPrinting" translate="yes" xml:space="preserve">
+          <source>Restrict document printing</source>
+          <target state="new">Restrict document printing</target>
+        </trans-unit>
+        <trans-unit id="SetPassword_YES" translate="yes" xml:space="preserve">
+          <source>Encrypt</source>
+          <target state="new">Encrypt</target>
+        </trans-unit>
+        <trans-unit id="RemovePassword_Context" translate="yes" xml:space="preserve">
+          <source>Are you sure you want to remove the security settings for”{0}” documents?</source>
+          <target state="new">Are you sure you want to remove the security settings for”{0}” documents?</target>
+        </trans-unit>
+        <trans-unit id="RemovePassword_No" translate="yes" xml:space="preserve">
+          <source>Cancel</source>
+          <target state="new">Cancel</target>
+        </trans-unit>
+        <trans-unit id="RemovePassword_YES" translate="yes" xml:space="preserve">
+          <source>Remove</source>
+          <target state="new">Remove</target>
+        </trans-unit>
       </group>
     </body>
   </file>

+ 284 - 0
PDF Office/MultilingualResources/PDF Office.zh-Hans.xlf

@@ -656,6 +656,290 @@ Drag files to reorder as you need.</target>
           <target state="new">Page {0}</target>
           <note from="MultilingualBuild" annotates="source" priority="2">第N页</note>
         </trans-unit>
+        <trans-unit id="Bookmark_EmptyContext" translate="yes" xml:space="preserve">
+          <source>Please right-click on the selected page and select "Add Bookmark", or click the "Add" button on the upper right to create a bookmark.</source>
+          <target state="new">Please right-click on the selected page and select "Add Bookmark", or click the "Add" button on the upper right to create a bookmark.</target>
+        </trans-unit>
+        <trans-unit id="Bookmark_EmptyTitle" translate="yes" xml:space="preserve">
+          <source>No Bookmarks</source>
+          <target state="new">No Bookmarks</target>
+        </trans-unit>
+        <trans-unit id="Annotation_DialogClear" translate="yes" xml:space="preserve">
+          <source>Clear</source>
+          <target state="new">Clear</target>
+        </trans-unit>
+        <trans-unit id="Annotation_DialogNo" translate="yes" xml:space="preserve">
+          <source>Cancel</source>
+          <target state="new">Cancel</target>
+        </trans-unit>
+        <trans-unit id="Annotation_DialogYes" translate="yes" xml:space="preserve">
+          <source>Apply</source>
+          <target state="new">Apply</target>
+        </trans-unit>
+        <trans-unit id="Annotation_Title" translate="yes" xml:space="preserve">
+          <source>Annotation</source>
+          <target state="new">Annotation</target>
+        </trans-unit>
+        <trans-unit id="Annotation_EmptyContext" translate="yes" xml:space="preserve">
+          <source>All comments in this file will be displayed here.</source>
+          <target state="new">All comments in this file will be displayed here.</target>
+        </trans-unit>
+        <trans-unit id="Annotation_EmptyTitle" translate="yes" xml:space="preserve">
+          <source>No Annotations</source>
+          <target state="new">No Annotations</target>
+        </trans-unit>
+        <trans-unit id="Annotation_MenuCollapse" translate="yes" xml:space="preserve">
+          <source>Collapse All</source>
+          <target state="new">Collapse All</target>
+        </trans-unit>
+        <trans-unit id="Annotation_MenuCopyText" translate="yes" xml:space="preserve">
+          <source>Copy Text</source>
+          <target state="new">Copy Text</target>
+        </trans-unit>
+        <trans-unit id="Annotation_MenuDelete" translate="yes" xml:space="preserve">
+          <source>Delete</source>
+          <target state="new">Delete</target>
+        </trans-unit>
+        <trans-unit id="Annotation_MenuDeleteAll" translate="yes" xml:space="preserve">
+          <source>Delete All Anntations</source>
+          <target state="new">Delete All Anntations</target>
+        </trans-unit>
+        <trans-unit id="Annotation_MenuExpand" translate="yes" xml:space="preserve">
+          <source>Expand All</source>
+          <target state="new">Expand All</target>
+        </trans-unit>
+        <trans-unit id="Annotation_MenuExport" translate="yes" xml:space="preserve">
+          <source>Export Annotations to XFDX</source>
+          <target state="new">Export Annotations to XFDX</target>
+          <note from="MultilingualBuild" annotates="source" priority="2">导出XFDF</note>
+        </trans-unit>
+        <trans-unit id="Annotation_MenuImport" translate="yes" xml:space="preserve">
+          <source>Import Annotations</source>
+          <target state="new">Import Annotations</target>
+          <note from="MultilingualBuild" annotates="source" priority="2">导入XFDF</note>
+        </trans-unit>
+        <trans-unit id="Annotation_DialogAuthor" translate="yes" xml:space="preserve">
+          <source>Author</source>
+          <target state="new">Author</target>
+        </trans-unit>
+        <trans-unit id="Annotation_DialogColor" translate="yes" xml:space="preserve">
+          <source>Color</source>
+          <target state="new">Color</target>
+        </trans-unit>
+        <trans-unit id="Annotation_DialogStyle" translate="yes" xml:space="preserve">
+          <source>Style</source>
+          <target state="new">Style</target>
+        </trans-unit>
+        <trans-unit id="Link_Page" translate="yes" xml:space="preserve">
+          <source>Page</source>
+          <target state="new">Page</target>
+        </trans-unit>
+        <trans-unit id="Link_Title" translate="yes" xml:space="preserve">
+          <source>Link</source>
+          <target state="new">Link</target>
+        </trans-unit>
+        <trans-unit id="ContentSelection_Copy" translate="yes" xml:space="preserve">
+          <source>Copy</source>
+          <target state="new">Copy</target>
+        </trans-unit>
+        <trans-unit id="ContentSelection_Crop" translate="yes" xml:space="preserve">
+          <source>Crop</source>
+          <target state="new">Crop</target>
+        </trans-unit>
+        <trans-unit id="ContentSelection_Output" translate="yes" xml:space="preserve">
+          <source>Output</source>
+          <target state="new">Output</target>
+        </trans-unit>
+        <trans-unit id="ContentSelection_Print" translate="yes" xml:space="preserve">
+          <source>Print</source>
+          <target state="new">Print</target>
+        </trans-unit>
+        <trans-unit id="ContentSelection_ZoomArea" translate="yes" xml:space="preserve">
+          <source>Zoom to Selected Area</source>
+          <target state="new">Zoom to Selected Area</target>
+        </trans-unit>
+        <trans-unit id="ColorMenuItem_Change" translate="yes" xml:space="preserve">
+          <source>Change Color</source>
+          <target state="new">Change Color</target>
+        </trans-unit>
+        <trans-unit id="ColorMenuItem_Restore" translate="yes" xml:space="preserve">
+          <source>Restore Default Color</source>
+          <target state="new">Restore Default Color</target>
+        </trans-unit>
+        <trans-unit id="Palette_Color" translate="yes" xml:space="preserve">
+          <source>Color</source>
+          <target state="new">Color</target>
+          <note from="MultilingualBuild" annotates="source" priority="2">调色板-主题颜色</note>
+        </trans-unit>
+        <trans-unit id="Palette_More" translate="yes" xml:space="preserve">
+          <source>More</source>
+          <target state="new">More</target>
+          <note from="MultilingualBuild" annotates="source" priority="2">调色板-其他颜色</note>
+        </trans-unit>
+        <trans-unit id="Palette_Recently" translate="yes" xml:space="preserve">
+          <source>Recently Used</source>
+          <target state="new">Recently Used</target>
+          <note from="MultilingualBuild" annotates="source" priority="2">调色板-最近使用的颜色</note>
+        </trans-unit>
+        <trans-unit id="Opacity_Title" translate="yes" xml:space="preserve">
+          <source>Opacity</source>
+          <target state="new">Opacity</target>
+          <note from="MultilingualBuild" annotates="source" priority="2">点击水滴按钮打开的透明度弹窗标题</note>
+        </trans-unit>
+        <trans-unit id="Highlight_Title" translate="yes" xml:space="preserve">
+          <source>Highlight</source>
+          <target state="new">Highlight</target>
+        </trans-unit>
+        <trans-unit id="Strikethrough_Title" translate="yes" xml:space="preserve">
+          <source>Strikethrough</source>
+          <target state="new">Strikethrough</target>
+        </trans-unit>
+        <trans-unit id="Underline_Title" translate="yes" xml:space="preserve">
+          <source>Underline</source>
+          <target state="new">Underline</target>
+        </trans-unit>
+        <trans-unit id="Sample" translate="yes" xml:space="preserve">
+          <source>Sample</source>
+          <target state="new">Sample</target>
+          <note from="MultilingualBuild" annotates="source" priority="2">高亮,删除线,下划线的示例文案</note>
+        </trans-unit>
+        <trans-unit id="FreeText_Fill" translate="yes" xml:space="preserve">
+          <source>Fill</source>
+          <target state="new">Fill</target>
+        </trans-unit>
+        <trans-unit id="FreeText_Font" translate="yes" xml:space="preserve">
+          <source>Font</source>
+          <target state="new">Font</target>
+        </trans-unit>
+        <trans-unit id="FreeText_Title" translate="yes" xml:space="preserve">
+          <source>Text</source>
+          <target state="new">Text</target>
+        </trans-unit>
+        <trans-unit id="PageEdit_Failed" translate="yes" xml:space="preserve">
+          <source>Failed to complete this operation.</source>
+          <target state="new">Failed to complete this operation.</target>
+        </trans-unit>
+        <trans-unit id="PageEdit_MenuCopy" translate="yes" xml:space="preserve">
+          <source>Copy</source>
+          <target state="new">Copy</target>
+        </trans-unit>
+        <trans-unit id="PageEdit_MenuCut" translate="yes" xml:space="preserve">
+          <source>Cut</source>
+          <target state="new">Cut</target>
+        </trans-unit>
+        <trans-unit id="PageEdit_MenuDelete" translate="yes" xml:space="preserve">
+          <source>Delete</source>
+          <target state="new">Delete</target>
+        </trans-unit>
+        <trans-unit id="PageEdit_MenuPaste" translate="yes" xml:space="preserve">
+          <source>Paste</source>
+          <target state="new">Paste</target>
+        </trans-unit>
+        <trans-unit id="PageEdit_MenuPrint" translate="yes" xml:space="preserve">
+          <source>Print</source>
+          <target state="new">Print</target>
+        </trans-unit>
+        <trans-unit id="PageEdit_MenuRotateClockwise" translate="yes" xml:space="preserve">
+          <source>Rotate Clockwise</source>
+          <target state="new">Rotate Clockwise</target>
+        </trans-unit>
+        <trans-unit id="PageEdit_MenuRotateCounterclockwise" translate="yes" xml:space="preserve">
+          <source>Rotate Counterclockwise</source>
+          <target state="new">Rotate Counterclockwise</target>
+        </trans-unit>
+        <trans-unit id="PageEdit_MenuShowPageSize" translate="yes" xml:space="preserve">
+          <source>Display Page Size</source>
+          <target state="new">Display Page Size</target>
+          <note from="MultilingualBuild" annotates="source" priority="2">显示页面大小</note>
+        </trans-unit>
+        <trans-unit id="Compress_High" translate="yes" xml:space="preserve">
+          <source>High</source>
+          <target state="new">High</target>
+        </trans-unit>
+        <trans-unit id="Compress_Low" translate="yes" xml:space="preserve">
+          <source>Low</source>
+          <target state="new">Low</target>
+        </trans-unit>
+        <trans-unit id="Compress_Minimum" translate="yes" xml:space="preserve">
+          <source>Minimum</source>
+          <target state="new">Minimum</target>
+        </trans-unit>
+        <trans-unit id="Compress_Standard" translate="yes" xml:space="preserve">
+          <source>Standard</source>
+          <target state="new">Standard</target>
+        </trans-unit>
+        <trans-unit id="Compress_Title" translate="yes" xml:space="preserve">
+          <source>Compress</source>
+          <target state="new">Compress</target>
+        </trans-unit>
+        <trans-unit id="Compress_Cancel" translate="yes" xml:space="preserve">
+          <source>Cancel</source>
+          <target state="new">Cancel</target>
+        </trans-unit>
+        <trans-unit id="Compress_Compress" translate="yes" xml:space="preserve">
+          <source>Compress</source>
+          <target state="new">Compress</target>
+        </trans-unit>
+        <trans-unit id="Security_RemovePassword" translate="yes" xml:space="preserve">
+          <source>Remove Passwords</source>
+          <target state="new">Remove Passwords</target>
+        </trans-unit>
+        <trans-unit id="Security_SetPassword" translate="yes" xml:space="preserve">
+          <source>Set Passwords</source>
+          <target state="new">Set Passwords</target>
+        </trans-unit>
+        <trans-unit id="SetPassword_Title" translate="yes" xml:space="preserve">
+          <source>Set Passwords</source>
+          <target state="new">Set Passwords</target>
+        </trans-unit>
+        <trans-unit id="SetPassword_No" translate="yes" xml:space="preserve">
+          <source>Cancel</source>
+          <target state="new">Cancel</target>
+        </trans-unit>
+        <trans-unit id="SetPassword_OpenEmptyText" translate="yes" xml:space="preserve">
+          <source>Open Password</source>
+          <target state="new">Open Password</target>
+          <note from="MultilingualBuild" annotates="source" priority="2">开启密码选项未输入内容提示文案</note>
+        </trans-unit>
+        <trans-unit id="SetPassword_OpenTitle" translate="yes" xml:space="preserve">
+          <source>Document Open Password</source>
+          <target state="new">Document Open Password</target>
+          <note from="MultilingualBuild" annotates="source" priority="2">设置开启密码选项标题</note>
+        </trans-unit>
+        <trans-unit id="SetPassword_PermissionEmptyText" translate="yes" xml:space="preserve">
+          <source>Permission Password</source>
+          <target state="new">Permission Password</target>
+          <note from="MultilingualBuild" annotates="source" priority="2">权限密码选项未输入内容提示文案</note>
+        </trans-unit>
+        <trans-unit id="SetPassword_PermissionTitle" translate="yes" xml:space="preserve">
+          <source>Document Permission Password</source>
+          <target state="new">Document Permission Password</target>
+          <note from="MultilingualBuild" annotates="source" priority="2">设置权限密码选项标题</note>
+        </trans-unit>
+        <trans-unit id="SetPassword_RestrictCopying" translate="yes" xml:space="preserve">
+          <source>Restrict content copying</source>
+          <target state="new">Restrict content copying</target>
+        </trans-unit>
+        <trans-unit id="SetPassword_RestrictPrinting" translate="yes" xml:space="preserve">
+          <source>Restrict document printing</source>
+          <target state="new">Restrict document printing</target>
+        </trans-unit>
+        <trans-unit id="SetPassword_YES" translate="yes" xml:space="preserve">
+          <source>Encrypt</source>
+          <target state="new">Encrypt</target>
+        </trans-unit>
+        <trans-unit id="RemovePassword_Context" translate="yes" xml:space="preserve">
+          <source>Are you sure you want to remove the security settings for”{0}” documents?</source>
+          <target state="new">Are you sure you want to remove the security settings for”{0}” documents?</target>
+        </trans-unit>
+        <trans-unit id="RemovePassword_No" translate="yes" xml:space="preserve">
+          <source>Cancel</source>
+          <target state="new">Cancel</target>
+        </trans-unit>
+        <trans-unit id="RemovePassword_YES" translate="yes" xml:space="preserve">
+          <source>Remove</source>
+          <target state="new">Remove</target>
+        </trans-unit>
       </group>
     </body>
   </file>

+ 284 - 0
PDF Office/MultilingualResources/PDF Office.zh-Hant.xlf

@@ -656,6 +656,290 @@ Drag files to reorder as you need.</target>
           <target state="new">Page {0}</target>
           <note from="MultilingualBuild" annotates="source" priority="2">第N页</note>
         </trans-unit>
+        <trans-unit id="Bookmark_EmptyContext" translate="yes" xml:space="preserve">
+          <source>Please right-click on the selected page and select "Add Bookmark", or click the "Add" button on the upper right to create a bookmark.</source>
+          <target state="new">Please right-click on the selected page and select "Add Bookmark", or click the "Add" button on the upper right to create a bookmark.</target>
+        </trans-unit>
+        <trans-unit id="Bookmark_EmptyTitle" translate="yes" xml:space="preserve">
+          <source>No Bookmarks</source>
+          <target state="new">No Bookmarks</target>
+        </trans-unit>
+        <trans-unit id="Annotation_DialogClear" translate="yes" xml:space="preserve">
+          <source>Clear</source>
+          <target state="new">Clear</target>
+        </trans-unit>
+        <trans-unit id="Annotation_DialogNo" translate="yes" xml:space="preserve">
+          <source>Cancel</source>
+          <target state="new">Cancel</target>
+        </trans-unit>
+        <trans-unit id="Annotation_DialogYes" translate="yes" xml:space="preserve">
+          <source>Apply</source>
+          <target state="new">Apply</target>
+        </trans-unit>
+        <trans-unit id="Annotation_Title" translate="yes" xml:space="preserve">
+          <source>Annotation</source>
+          <target state="new">Annotation</target>
+        </trans-unit>
+        <trans-unit id="Annotation_EmptyContext" translate="yes" xml:space="preserve">
+          <source>All comments in this file will be displayed here.</source>
+          <target state="new">All comments in this file will be displayed here.</target>
+        </trans-unit>
+        <trans-unit id="Annotation_EmptyTitle" translate="yes" xml:space="preserve">
+          <source>No Annotations</source>
+          <target state="new">No Annotations</target>
+        </trans-unit>
+        <trans-unit id="Annotation_MenuCollapse" translate="yes" xml:space="preserve">
+          <source>Collapse All</source>
+          <target state="new">Collapse All</target>
+        </trans-unit>
+        <trans-unit id="Annotation_MenuCopyText" translate="yes" xml:space="preserve">
+          <source>Copy Text</source>
+          <target state="new">Copy Text</target>
+        </trans-unit>
+        <trans-unit id="Annotation_MenuDelete" translate="yes" xml:space="preserve">
+          <source>Delete</source>
+          <target state="new">Delete</target>
+        </trans-unit>
+        <trans-unit id="Annotation_MenuDeleteAll" translate="yes" xml:space="preserve">
+          <source>Delete All Anntations</source>
+          <target state="new">Delete All Anntations</target>
+        </trans-unit>
+        <trans-unit id="Annotation_MenuExpand" translate="yes" xml:space="preserve">
+          <source>Expand All</source>
+          <target state="new">Expand All</target>
+        </trans-unit>
+        <trans-unit id="Annotation_MenuExport" translate="yes" xml:space="preserve">
+          <source>Export Annotations to XFDX</source>
+          <target state="new">Export Annotations to XFDX</target>
+          <note from="MultilingualBuild" annotates="source" priority="2">导出XFDF</note>
+        </trans-unit>
+        <trans-unit id="Annotation_MenuImport" translate="yes" xml:space="preserve">
+          <source>Import Annotations</source>
+          <target state="new">Import Annotations</target>
+          <note from="MultilingualBuild" annotates="source" priority="2">导入XFDF</note>
+        </trans-unit>
+        <trans-unit id="Annotation_DialogAuthor" translate="yes" xml:space="preserve">
+          <source>Author</source>
+          <target state="new">Author</target>
+        </trans-unit>
+        <trans-unit id="Annotation_DialogColor" translate="yes" xml:space="preserve">
+          <source>Color</source>
+          <target state="new">Color</target>
+        </trans-unit>
+        <trans-unit id="Annotation_DialogStyle" translate="yes" xml:space="preserve">
+          <source>Style</source>
+          <target state="new">Style</target>
+        </trans-unit>
+        <trans-unit id="Link_Page" translate="yes" xml:space="preserve">
+          <source>Page</source>
+          <target state="new">Page</target>
+        </trans-unit>
+        <trans-unit id="Link_Title" translate="yes" xml:space="preserve">
+          <source>Link</source>
+          <target state="new">Link</target>
+        </trans-unit>
+        <trans-unit id="ContentSelection_Copy" translate="yes" xml:space="preserve">
+          <source>Copy</source>
+          <target state="new">Copy</target>
+        </trans-unit>
+        <trans-unit id="ContentSelection_Crop" translate="yes" xml:space="preserve">
+          <source>Crop</source>
+          <target state="new">Crop</target>
+        </trans-unit>
+        <trans-unit id="ContentSelection_Output" translate="yes" xml:space="preserve">
+          <source>Output</source>
+          <target state="new">Output</target>
+        </trans-unit>
+        <trans-unit id="ContentSelection_Print" translate="yes" xml:space="preserve">
+          <source>Print</source>
+          <target state="new">Print</target>
+        </trans-unit>
+        <trans-unit id="ContentSelection_ZoomArea" translate="yes" xml:space="preserve">
+          <source>Zoom to Selected Area</source>
+          <target state="new">Zoom to Selected Area</target>
+        </trans-unit>
+        <trans-unit id="ColorMenuItem_Change" translate="yes" xml:space="preserve">
+          <source>Change Color</source>
+          <target state="new">Change Color</target>
+        </trans-unit>
+        <trans-unit id="ColorMenuItem_Restore" translate="yes" xml:space="preserve">
+          <source>Restore Default Color</source>
+          <target state="new">Restore Default Color</target>
+        </trans-unit>
+        <trans-unit id="Palette_Color" translate="yes" xml:space="preserve">
+          <source>Color</source>
+          <target state="new">Color</target>
+          <note from="MultilingualBuild" annotates="source" priority="2">调色板-主题颜色</note>
+        </trans-unit>
+        <trans-unit id="Palette_More" translate="yes" xml:space="preserve">
+          <source>More</source>
+          <target state="new">More</target>
+          <note from="MultilingualBuild" annotates="source" priority="2">调色板-其他颜色</note>
+        </trans-unit>
+        <trans-unit id="Palette_Recently" translate="yes" xml:space="preserve">
+          <source>Recently Used</source>
+          <target state="new">Recently Used</target>
+          <note from="MultilingualBuild" annotates="source" priority="2">调色板-最近使用的颜色</note>
+        </trans-unit>
+        <trans-unit id="Opacity_Title" translate="yes" xml:space="preserve">
+          <source>Opacity</source>
+          <target state="new">Opacity</target>
+          <note from="MultilingualBuild" annotates="source" priority="2">点击水滴按钮打开的透明度弹窗标题</note>
+        </trans-unit>
+        <trans-unit id="Highlight_Title" translate="yes" xml:space="preserve">
+          <source>Highlight</source>
+          <target state="new">Highlight</target>
+        </trans-unit>
+        <trans-unit id="Strikethrough_Title" translate="yes" xml:space="preserve">
+          <source>Strikethrough</source>
+          <target state="new">Strikethrough</target>
+        </trans-unit>
+        <trans-unit id="Underline_Title" translate="yes" xml:space="preserve">
+          <source>Underline</source>
+          <target state="new">Underline</target>
+        </trans-unit>
+        <trans-unit id="Sample" translate="yes" xml:space="preserve">
+          <source>Sample</source>
+          <target state="new">Sample</target>
+          <note from="MultilingualBuild" annotates="source" priority="2">高亮,删除线,下划线的示例文案</note>
+        </trans-unit>
+        <trans-unit id="FreeText_Fill" translate="yes" xml:space="preserve">
+          <source>Fill</source>
+          <target state="new">Fill</target>
+        </trans-unit>
+        <trans-unit id="FreeText_Font" translate="yes" xml:space="preserve">
+          <source>Font</source>
+          <target state="new">Font</target>
+        </trans-unit>
+        <trans-unit id="FreeText_Title" translate="yes" xml:space="preserve">
+          <source>Text</source>
+          <target state="new">Text</target>
+        </trans-unit>
+        <trans-unit id="PageEdit_Failed" translate="yes" xml:space="preserve">
+          <source>Failed to complete this operation.</source>
+          <target state="new">Failed to complete this operation.</target>
+        </trans-unit>
+        <trans-unit id="PageEdit_MenuCopy" translate="yes" xml:space="preserve">
+          <source>Copy</source>
+          <target state="new">Copy</target>
+        </trans-unit>
+        <trans-unit id="PageEdit_MenuCut" translate="yes" xml:space="preserve">
+          <source>Cut</source>
+          <target state="new">Cut</target>
+        </trans-unit>
+        <trans-unit id="PageEdit_MenuDelete" translate="yes" xml:space="preserve">
+          <source>Delete</source>
+          <target state="new">Delete</target>
+        </trans-unit>
+        <trans-unit id="PageEdit_MenuPaste" translate="yes" xml:space="preserve">
+          <source>Paste</source>
+          <target state="new">Paste</target>
+        </trans-unit>
+        <trans-unit id="PageEdit_MenuPrint" translate="yes" xml:space="preserve">
+          <source>Print</source>
+          <target state="new">Print</target>
+        </trans-unit>
+        <trans-unit id="PageEdit_MenuRotateClockwise" translate="yes" xml:space="preserve">
+          <source>Rotate Clockwise</source>
+          <target state="new">Rotate Clockwise</target>
+        </trans-unit>
+        <trans-unit id="PageEdit_MenuRotateCounterclockwise" translate="yes" xml:space="preserve">
+          <source>Rotate Counterclockwise</source>
+          <target state="new">Rotate Counterclockwise</target>
+        </trans-unit>
+        <trans-unit id="PageEdit_MenuShowPageSize" translate="yes" xml:space="preserve">
+          <source>Display Page Size</source>
+          <target state="new">Display Page Size</target>
+          <note from="MultilingualBuild" annotates="source" priority="2">显示页面大小</note>
+        </trans-unit>
+        <trans-unit id="Compress_High" translate="yes" xml:space="preserve">
+          <source>High</source>
+          <target state="new">High</target>
+        </trans-unit>
+        <trans-unit id="Compress_Low" translate="yes" xml:space="preserve">
+          <source>Low</source>
+          <target state="new">Low</target>
+        </trans-unit>
+        <trans-unit id="Compress_Minimum" translate="yes" xml:space="preserve">
+          <source>Minimum</source>
+          <target state="new">Minimum</target>
+        </trans-unit>
+        <trans-unit id="Compress_Standard" translate="yes" xml:space="preserve">
+          <source>Standard</source>
+          <target state="new">Standard</target>
+        </trans-unit>
+        <trans-unit id="Compress_Title" translate="yes" xml:space="preserve">
+          <source>Compress</source>
+          <target state="new">Compress</target>
+        </trans-unit>
+        <trans-unit id="Compress_Cancel" translate="yes" xml:space="preserve">
+          <source>Cancel</source>
+          <target state="new">Cancel</target>
+        </trans-unit>
+        <trans-unit id="Compress_Compress" translate="yes" xml:space="preserve">
+          <source>Compress</source>
+          <target state="new">Compress</target>
+        </trans-unit>
+        <trans-unit id="Security_RemovePassword" translate="yes" xml:space="preserve">
+          <source>Remove Passwords</source>
+          <target state="new">Remove Passwords</target>
+        </trans-unit>
+        <trans-unit id="Security_SetPassword" translate="yes" xml:space="preserve">
+          <source>Set Passwords</source>
+          <target state="new">Set Passwords</target>
+        </trans-unit>
+        <trans-unit id="SetPassword_Title" translate="yes" xml:space="preserve">
+          <source>Set Passwords</source>
+          <target state="new">Set Passwords</target>
+        </trans-unit>
+        <trans-unit id="SetPassword_No" translate="yes" xml:space="preserve">
+          <source>Cancel</source>
+          <target state="new">Cancel</target>
+        </trans-unit>
+        <trans-unit id="SetPassword_OpenEmptyText" translate="yes" xml:space="preserve">
+          <source>Open Password</source>
+          <target state="new">Open Password</target>
+          <note from="MultilingualBuild" annotates="source" priority="2">开启密码选项未输入内容提示文案</note>
+        </trans-unit>
+        <trans-unit id="SetPassword_OpenTitle" translate="yes" xml:space="preserve">
+          <source>Document Open Password</source>
+          <target state="new">Document Open Password</target>
+          <note from="MultilingualBuild" annotates="source" priority="2">设置开启密码选项标题</note>
+        </trans-unit>
+        <trans-unit id="SetPassword_PermissionEmptyText" translate="yes" xml:space="preserve">
+          <source>Permission Password</source>
+          <target state="new">Permission Password</target>
+          <note from="MultilingualBuild" annotates="source" priority="2">权限密码选项未输入内容提示文案</note>
+        </trans-unit>
+        <trans-unit id="SetPassword_PermissionTitle" translate="yes" xml:space="preserve">
+          <source>Document Permission Password</source>
+          <target state="new">Document Permission Password</target>
+          <note from="MultilingualBuild" annotates="source" priority="2">设置权限密码选项标题</note>
+        </trans-unit>
+        <trans-unit id="SetPassword_RestrictCopying" translate="yes" xml:space="preserve">
+          <source>Restrict content copying</source>
+          <target state="new">Restrict content copying</target>
+        </trans-unit>
+        <trans-unit id="SetPassword_RestrictPrinting" translate="yes" xml:space="preserve">
+          <source>Restrict document printing</source>
+          <target state="new">Restrict document printing</target>
+        </trans-unit>
+        <trans-unit id="SetPassword_YES" translate="yes" xml:space="preserve">
+          <source>Encrypt</source>
+          <target state="new">Encrypt</target>
+        </trans-unit>
+        <trans-unit id="RemovePassword_Context" translate="yes" xml:space="preserve">
+          <source>Are you sure you want to remove the security settings for”{0}” documents?</source>
+          <target state="new">Are you sure you want to remove the security settings for”{0}” documents?</target>
+        </trans-unit>
+        <trans-unit id="RemovePassword_No" translate="yes" xml:space="preserve">
+          <source>Cancel</source>
+          <target state="new">Cancel</target>
+        </trans-unit>
+        <trans-unit id="RemovePassword_YES" translate="yes" xml:space="preserve">
+          <source>Remove</source>
+          <target state="new">Remove</target>
+        </trans-unit>
       </group>
     </body>
   </file>

+ 27 - 0
PDF Office/PDF Office.csproj

@@ -377,6 +377,7 @@
     <Compile Include="Model\Dialog\ConverterDialogs\ConverterRTFDialogModel.cs" />
     <Compile Include="Model\Dialog\ConverterDialogs\ConverterTextDialogModel.cs" />
     <Compile Include="Model\Dialog\ConverterDialogs\ConverterWordDialogModel.cs" />
+    <Compile Include="Model\Dialog\GuidItemModel.cs" />
     <Compile Include="Model\Dialog\HomePageToolsDialogs\HomePageBatchProcessing\HomePageBatchProcessingDialogModel.cs" />
     <Compile Include="Model\Dialog\HomePageToolsDialogs\HomePageBatchProcessing\HomePageCompressDialogModel.cs" />
     <Compile Include="Model\Dialog\HomePageToolsDialogs\HomePageBatchProcessing\HomePageConverter\HomePageConverterCSVModel.cs" />
@@ -448,6 +449,7 @@
     </Compile>
     <Compile Include="ViewModels\Dialog\HomePageToolsDialogs\CreateFromHtmlDialogViewModel.cs" />
     <Compile Include="ViewModels\Dialog\HomePageToolsDialogs\CreateFromScannerDialogsViewModel.cs" />
+    <Compile Include="ViewModels\Dialog\NoviceGuidDialogViewModel.cs" />
     <Compile Include="ViewModels\Dialog\PropertiesDialogViewModel.cs" />
     <Compile Include="ViewModels\Dialog\Redaction\MarkSettingDialogViewModel.cs" />
     <Compile Include="ViewModels\Dialog\Redaction\PageMarkDialogViewModel.cs" />
@@ -816,6 +818,9 @@
     <Compile Include="Views\Dialog\HomePageToolsDialogs\HomePageSplitDialog.xaml.cs">
       <DependentUpon>HomePageSplitDialog.xaml</DependentUpon>
     </Compile>
+    <Compile Include="Views\Dialog\NoviceGuidDialog.xaml.cs">
+      <DependentUpon>NoviceGuidDialog.xaml</DependentUpon>
+    </Compile>
     <Compile Include="Views\Dialog\PageEditDialogs\ExtractDialog.xaml.cs">
       <DependentUpon>ExtractDialog.xaml</DependentUpon>
     </Compile>
@@ -1556,6 +1561,10 @@
       <SubType>Designer</SubType>
       <Generator>MSBuild:Compile</Generator>
     </Page>
+    <Page Include="Views\Dialog\NoviceGuidDialog.xaml">
+      <SubType>Designer</SubType>
+      <Generator>MSBuild:Compile</Generator>
+    </Page>
     <Page Include="Views\Dialog\PageEditDialogs\SplitDialog.xaml">
       <SubType>Designer</SubType>
       <Generator>MSBuild:Compile</Generator>
@@ -2144,6 +2153,9 @@
     <Content Include="ComDocumentAIKit.dll">
       <CopyToOutputDirectory>Always</CopyToOutputDirectory>
     </Content>
+    <Content Include="Resources\GuidPDF\Quick Start Guide.pdf">
+      <CopyToOutputDirectory>Always</CopyToOutputDirectory>
+    </Content>
     <None Include="source\models\OCR.model" />
     <Resource Include="Resources\ToolBarIcon\Scan\enhance.png">
       <CopyToOutputDirectory>Always</CopyToOutputDirectory>
@@ -2159,6 +2171,21 @@
     <Resource Include="Resources\Dialog\password.png" />
     <Resource Include="Resources\BOTA\no search.png" />
     <Resource Include="Resources\Dialog\helphover.png" />
+    <Content Include="Resources\GuidItems\Guid_Annote.png">
+      <CopyToOutputDirectory>Always</CopyToOutputDirectory>
+    </Content>
+    <Content Include="Resources\GuidItems\Guid_Convert.png">
+      <CopyToOutputDirectory>Always</CopyToOutputDirectory>
+    </Content>
+    <Content Include="Resources\GuidItems\Guid_FillAndSign.png">
+      <CopyToOutputDirectory>Always</CopyToOutputDirectory>
+    </Content>
+    <Content Include="Resources\GuidItems\Guid_Office.png">
+      <CopyToOutputDirectory>Always</CopyToOutputDirectory>
+    </Content>
+    <Content Include="Resources\GuidItems\Guid_SignUp.png">
+      <CopyToOutputDirectory>Always</CopyToOutputDirectory>
+    </Content>
     <Content Include="source\AnalysisWord\Res\word\_rels\document.xml.rels">
       <CopyToOutputDirectory>Always</CopyToOutputDirectory>
     </Content>

+ 25 - 1
PDF Office/Properties/Settings.Designer.cs

@@ -12,7 +12,7 @@ namespace PDF_Office.Properties {
     
     
     [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
-    [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.VisualStudio.Editors.SettingsDesigner.SettingsSingleFileGenerator", "17.1.0.0")]
+    [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.VisualStudio.Editors.SettingsDesigner.SettingsSingleFileGenerator", "16.10.0.0")]
     internal sealed partial class Settings : global::System.Configuration.ApplicationSettingsBase {
         
         private static Settings defaultInstance = ((Settings)(global::System.Configuration.ApplicationSettingsBase.Synchronized(new Settings())));
@@ -236,5 +236,29 @@ namespace PDF_Office.Properties {
                 this["ColorSelectors"] = value;
             }
         }
+        
+        [global::System.Configuration.UserScopedSettingAttribute()]
+        [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
+        [global::System.Configuration.DefaultSettingValueAttribute("True")]
+        public bool IsNewUser {
+            get {
+                return ((bool)(this["IsNewUser"]));
+            }
+            set {
+                this["IsNewUser"] = value;
+            }
+        }
+        
+        [global::System.Configuration.UserScopedSettingAttribute()]
+        [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
+        [global::System.Configuration.DefaultSettingValueAttribute("True")]
+        public bool IsGuidPDFUpdated {
+            get {
+                return ((bool)(this["IsGuidPDFUpdated"]));
+            }
+            set {
+                this["IsGuidPDFUpdated"] = value;
+            }
+        }
     }
 }

+ 6 - 0
PDF Office/Properties/Settings.settings

@@ -59,5 +59,11 @@
     <Setting Name="ColorSelectors" Type="PDFSettings.ColorSelectorList" Scope="User">
       <Value Profile="(Default)" />
     </Setting>
+    <Setting Name="IsNewUser" Type="System.Boolean" Scope="User">
+      <Value Profile="(Default)">True</Value>
+    </Setting>
+    <Setting Name="IsGuidPDFUpdated" Type="System.Boolean" Scope="User">
+      <Value Profile="(Default)">True</Value>
+    </Setting>
   </Settings>
 </SettingsFile>

BIN
PDF Office/Resources/GuidItems/Guid_Annote.png


BIN
PDF Office/Resources/GuidItems/Guid_Convert.png


BIN
PDF Office/Resources/GuidItems/Guid_FillAndSign.png


BIN
PDF Office/Resources/GuidItems/Guid_Office.png


BIN
PDF Office/Resources/GuidItems/Guid_SignUp.png


BIN
PDF Office/Resources/GuidPDF/Quick Start Guide.pdf


+ 612 - 0
PDF Office/Strings/MainPage/MainPage.Designer.cs

@@ -60,6 +60,150 @@ namespace PDF_Office.Strings.MainPage {
             }
         }
         
+        /// <summary>
+        ///   查找类似 Author 的本地化字符串。
+        /// </summary>
+        public static string Annotation_DialogAuthor {
+            get {
+                return ResourceManager.GetString("Annotation_DialogAuthor", resourceCulture);
+            }
+        }
+        
+        /// <summary>
+        ///   查找类似 Clear 的本地化字符串。
+        /// </summary>
+        public static string Annotation_DialogClear {
+            get {
+                return ResourceManager.GetString("Annotation_DialogClear", resourceCulture);
+            }
+        }
+        
+        /// <summary>
+        ///   查找类似 Color 的本地化字符串。
+        /// </summary>
+        public static string Annotation_DialogColor {
+            get {
+                return ResourceManager.GetString("Annotation_DialogColor", resourceCulture);
+            }
+        }
+        
+        /// <summary>
+        ///   查找类似 Cancel 的本地化字符串。
+        /// </summary>
+        public static string Annotation_DialogNo {
+            get {
+                return ResourceManager.GetString("Annotation_DialogNo", resourceCulture);
+            }
+        }
+        
+        /// <summary>
+        ///   查找类似 Style 的本地化字符串。
+        /// </summary>
+        public static string Annotation_DialogStyle {
+            get {
+                return ResourceManager.GetString("Annotation_DialogStyle", resourceCulture);
+            }
+        }
+        
+        /// <summary>
+        ///   查找类似 Apply 的本地化字符串。
+        /// </summary>
+        public static string Annotation_DialogYes {
+            get {
+                return ResourceManager.GetString("Annotation_DialogYes", resourceCulture);
+            }
+        }
+        
+        /// <summary>
+        ///   查找类似 All comments in this file will be displayed here. 的本地化字符串。
+        /// </summary>
+        public static string Annotation_EmptyContext {
+            get {
+                return ResourceManager.GetString("Annotation_EmptyContext", resourceCulture);
+            }
+        }
+        
+        /// <summary>
+        ///   查找类似 No Annotations 的本地化字符串。
+        /// </summary>
+        public static string Annotation_EmptyTitle {
+            get {
+                return ResourceManager.GetString("Annotation_EmptyTitle", resourceCulture);
+            }
+        }
+        
+        /// <summary>
+        ///   查找类似 Collapse All 的本地化字符串。
+        /// </summary>
+        public static string Annotation_MenuCollapse {
+            get {
+                return ResourceManager.GetString("Annotation_MenuCollapse", resourceCulture);
+            }
+        }
+        
+        /// <summary>
+        ///   查找类似 Copy Text 的本地化字符串。
+        /// </summary>
+        public static string Annotation_MenuCopyText {
+            get {
+                return ResourceManager.GetString("Annotation_MenuCopyText", resourceCulture);
+            }
+        }
+        
+        /// <summary>
+        ///   查找类似 Delete 的本地化字符串。
+        /// </summary>
+        public static string Annotation_MenuDelete {
+            get {
+                return ResourceManager.GetString("Annotation_MenuDelete", resourceCulture);
+            }
+        }
+        
+        /// <summary>
+        ///   查找类似 Delete All Anntations 的本地化字符串。
+        /// </summary>
+        public static string Annotation_MenuDeleteAll {
+            get {
+                return ResourceManager.GetString("Annotation_MenuDeleteAll", resourceCulture);
+            }
+        }
+        
+        /// <summary>
+        ///   查找类似 Expand All 的本地化字符串。
+        /// </summary>
+        public static string Annotation_MenuExpand {
+            get {
+                return ResourceManager.GetString("Annotation_MenuExpand", resourceCulture);
+            }
+        }
+        
+        /// <summary>
+        ///   查找类似 Export Annotations to XFDX 的本地化字符串。
+        /// </summary>
+        public static string Annotation_MenuExport {
+            get {
+                return ResourceManager.GetString("Annotation_MenuExport", resourceCulture);
+            }
+        }
+        
+        /// <summary>
+        ///   查找类似 Import Annotations 的本地化字符串。
+        /// </summary>
+        public static string Annotation_MenuImport {
+            get {
+                return ResourceManager.GetString("Annotation_MenuImport", resourceCulture);
+            }
+        }
+        
+        /// <summary>
+        ///   查找类似 Annotation 的本地化字符串。
+        /// </summary>
+        public static string Annotation_Title {
+            get {
+                return ResourceManager.GetString("Annotation_Title", resourceCulture);
+            }
+        }
+        
         /// <summary>
         ///   查找类似 Change Target Location 的本地化字符串。
         /// </summary>
@@ -78,6 +222,24 @@ namespace PDF_Office.Strings.MainPage {
             }
         }
         
+        /// <summary>
+        ///   查找类似 Please right-click on the selected page and select &quot;Add Bookmark&quot;, or click the &quot;Add&quot; button on the upper right to create a bookmark. 的本地化字符串。
+        /// </summary>
+        public static string Bookmark_EmptyContext {
+            get {
+                return ResourceManager.GetString("Bookmark_EmptyContext", resourceCulture);
+            }
+        }
+        
+        /// <summary>
+        ///   查找类似 No Bookmarks 的本地化字符串。
+        /// </summary>
+        public static string Bookmark_EmptyTitle {
+            get {
+                return ResourceManager.GetString("Bookmark_EmptyTitle", resourceCulture);
+            }
+        }
+        
         /// <summary>
         ///   查找类似 Page {0} 的本地化字符串。
         /// </summary>
@@ -105,6 +267,159 @@ namespace PDF_Office.Strings.MainPage {
             }
         }
         
+        /// <summary>
+        ///   查找类似 Change Color 的本地化字符串。
+        /// </summary>
+        public static string ColorMenuItem_Change {
+            get {
+                return ResourceManager.GetString("ColorMenuItem_Change", resourceCulture);
+            }
+        }
+        
+        /// <summary>
+        ///   查找类似 Restore Default Color 的本地化字符串。
+        /// </summary>
+        public static string ColorMenuItem_Restore {
+            get {
+                return ResourceManager.GetString("ColorMenuItem_Restore", resourceCulture);
+            }
+        }
+        
+        /// <summary>
+        ///   查找类似 Cancel 的本地化字符串。
+        /// </summary>
+        public static string Compress_Cancel {
+            get {
+                return ResourceManager.GetString("Compress_Cancel", resourceCulture);
+            }
+        }
+        
+        /// <summary>
+        ///   查找类似 Compress 的本地化字符串。
+        /// </summary>
+        public static string Compress_Compress {
+            get {
+                return ResourceManager.GetString("Compress_Compress", resourceCulture);
+            }
+        }
+        
+        /// <summary>
+        ///   查找类似 High 的本地化字符串。
+        /// </summary>
+        public static string Compress_High {
+            get {
+                return ResourceManager.GetString("Compress_High", resourceCulture);
+            }
+        }
+        
+        /// <summary>
+        ///   查找类似 Low 的本地化字符串。
+        /// </summary>
+        public static string Compress_Low {
+            get {
+                return ResourceManager.GetString("Compress_Low", resourceCulture);
+            }
+        }
+        
+        /// <summary>
+        ///   查找类似 Minimum 的本地化字符串。
+        /// </summary>
+        public static string Compress_Minimum {
+            get {
+                return ResourceManager.GetString("Compress_Minimum", resourceCulture);
+            }
+        }
+        
+        /// <summary>
+        ///   查找类似 Standard 的本地化字符串。
+        /// </summary>
+        public static string Compress_Standard {
+            get {
+                return ResourceManager.GetString("Compress_Standard", resourceCulture);
+            }
+        }
+        
+        /// <summary>
+        ///   查找类似 Compress 的本地化字符串。
+        /// </summary>
+        public static string Compress_Title {
+            get {
+                return ResourceManager.GetString("Compress_Title", resourceCulture);
+            }
+        }
+        
+        /// <summary>
+        ///   查找类似 Copy 的本地化字符串。
+        /// </summary>
+        public static string ContentSelection_Copy {
+            get {
+                return ResourceManager.GetString("ContentSelection_Copy", resourceCulture);
+            }
+        }
+        
+        /// <summary>
+        ///   查找类似 Crop 的本地化字符串。
+        /// </summary>
+        public static string ContentSelection_Crop {
+            get {
+                return ResourceManager.GetString("ContentSelection_Crop", resourceCulture);
+            }
+        }
+        
+        /// <summary>
+        ///   查找类似 Output 的本地化字符串。
+        /// </summary>
+        public static string ContentSelection_Output {
+            get {
+                return ResourceManager.GetString("ContentSelection_Output", resourceCulture);
+            }
+        }
+        
+        /// <summary>
+        ///   查找类似 Print 的本地化字符串。
+        /// </summary>
+        public static string ContentSelection_Print {
+            get {
+                return ResourceManager.GetString("ContentSelection_Print", resourceCulture);
+            }
+        }
+        
+        /// <summary>
+        ///   查找类似 Zoom to Selected Area 的本地化字符串。
+        /// </summary>
+        public static string ContentSelection_ZoomArea {
+            get {
+                return ResourceManager.GetString("ContentSelection_ZoomArea", resourceCulture);
+            }
+        }
+        
+        /// <summary>
+        ///   查找类似 Fill 的本地化字符串。
+        /// </summary>
+        public static string FreeText_Fill {
+            get {
+                return ResourceManager.GetString("FreeText_Fill", resourceCulture);
+            }
+        }
+        
+        /// <summary>
+        ///   查找类似 Font 的本地化字符串。
+        /// </summary>
+        public static string FreeText_Font {
+            get {
+                return ResourceManager.GetString("FreeText_Font", resourceCulture);
+            }
+        }
+        
+        /// <summary>
+        ///   查找类似 Text 的本地化字符串。
+        /// </summary>
+        public static string FreeText_Title {
+            get {
+                return ResourceManager.GetString("FreeText_Title", resourceCulture);
+            }
+        }
+        
         /// <summary>
         ///   查找类似 Enter Read Mode, tap ESC to exit 的本地化字符串。
         /// </summary>
@@ -123,6 +438,33 @@ namespace PDF_Office.Strings.MainPage {
             }
         }
         
+        /// <summary>
+        ///   查找类似 Highlight 的本地化字符串。
+        /// </summary>
+        public static string Highlight_Title {
+            get {
+                return ResourceManager.GetString("Highlight_Title", resourceCulture);
+            }
+        }
+        
+        /// <summary>
+        ///   查找类似 Page 的本地化字符串。
+        /// </summary>
+        public static string Link_Page {
+            get {
+                return ResourceManager.GetString("Link_Page", resourceCulture);
+            }
+        }
+        
+        /// <summary>
+        ///   查找类似 Link 的本地化字符串。
+        /// </summary>
+        public static string Link_Title {
+            get {
+                return ResourceManager.GetString("Link_Title", resourceCulture);
+            }
+        }
+        
         /// <summary>
         ///   查找类似 Add Files 的本地化字符串。
         /// </summary>
@@ -260,6 +602,15 @@ namespace PDF_Office.Strings.MainPage {
             }
         }
         
+        /// <summary>
+        ///   查找类似 Opacity 的本地化字符串。
+        /// </summary>
+        public static string Opacity_Title {
+            get {
+                return ResourceManager.GetString("Opacity_Title", resourceCulture);
+            }
+        }
+        
         /// <summary>
         ///   查找类似 Add Item 的本地化字符串。
         /// </summary>
@@ -395,6 +746,249 @@ namespace PDF_Office.Strings.MainPage {
             }
         }
         
+        /// <summary>
+        ///   查找类似 Failed to complete this operation. 的本地化字符串。
+        /// </summary>
+        public static string PageEdit_Failed {
+            get {
+                return ResourceManager.GetString("PageEdit_Failed", resourceCulture);
+            }
+        }
+        
+        /// <summary>
+        ///   查找类似 Copy 的本地化字符串。
+        /// </summary>
+        public static string PageEdit_MenuCopy {
+            get {
+                return ResourceManager.GetString("PageEdit_MenuCopy", resourceCulture);
+            }
+        }
+        
+        /// <summary>
+        ///   查找类似 Cut 的本地化字符串。
+        /// </summary>
+        public static string PageEdit_MenuCut {
+            get {
+                return ResourceManager.GetString("PageEdit_MenuCut", resourceCulture);
+            }
+        }
+        
+        /// <summary>
+        ///   查找类似 Delete 的本地化字符串。
+        /// </summary>
+        public static string PageEdit_MenuDelete {
+            get {
+                return ResourceManager.GetString("PageEdit_MenuDelete", resourceCulture);
+            }
+        }
+        
+        /// <summary>
+        ///   查找类似 Paste 的本地化字符串。
+        /// </summary>
+        public static string PageEdit_MenuPaste {
+            get {
+                return ResourceManager.GetString("PageEdit_MenuPaste", resourceCulture);
+            }
+        }
+        
+        /// <summary>
+        ///   查找类似 Print 的本地化字符串。
+        /// </summary>
+        public static string PageEdit_MenuPrint {
+            get {
+                return ResourceManager.GetString("PageEdit_MenuPrint", resourceCulture);
+            }
+        }
+        
+        /// <summary>
+        ///   查找类似 Rotate Clockwise 的本地化字符串。
+        /// </summary>
+        public static string PageEdit_MenuRotateClockwise {
+            get {
+                return ResourceManager.GetString("PageEdit_MenuRotateClockwise", resourceCulture);
+            }
+        }
+        
+        /// <summary>
+        ///   查找类似 Rotate Counterclockwise 的本地化字符串。
+        /// </summary>
+        public static string PageEdit_MenuRotateCounterclockwise {
+            get {
+                return ResourceManager.GetString("PageEdit_MenuRotateCounterclockwise", resourceCulture);
+            }
+        }
+        
+        /// <summary>
+        ///   查找类似 Display Page Size 的本地化字符串。
+        /// </summary>
+        public static string PageEdit_MenuShowPageSize {
+            get {
+                return ResourceManager.GetString("PageEdit_MenuShowPageSize", resourceCulture);
+            }
+        }
+        
+        /// <summary>
+        ///   查找类似 Color 的本地化字符串。
+        /// </summary>
+        public static string Palette_Color {
+            get {
+                return ResourceManager.GetString("Palette_Color", resourceCulture);
+            }
+        }
+        
+        /// <summary>
+        ///   查找类似 More 的本地化字符串。
+        /// </summary>
+        public static string Palette_More {
+            get {
+                return ResourceManager.GetString("Palette_More", resourceCulture);
+            }
+        }
+        
+        /// <summary>
+        ///   查找类似 Recently Used 的本地化字符串。
+        /// </summary>
+        public static string Palette_Recently {
+            get {
+                return ResourceManager.GetString("Palette_Recently", resourceCulture);
+            }
+        }
+        
+        /// <summary>
+        ///   查找类似 Are you sure you want to remove the security settings for”{0}” documents? 的本地化字符串。
+        /// </summary>
+        public static string RemovePassword_Context {
+            get {
+                return ResourceManager.GetString("RemovePassword_Context", resourceCulture);
+            }
+        }
+        
+        /// <summary>
+        ///   查找类似 Cancel 的本地化字符串。
+        /// </summary>
+        public static string RemovePassword_No {
+            get {
+                return ResourceManager.GetString("RemovePassword_No", resourceCulture);
+            }
+        }
+        
+        /// <summary>
+        ///   查找类似 Remove 的本地化字符串。
+        /// </summary>
+        public static string RemovePassword_YES {
+            get {
+                return ResourceManager.GetString("RemovePassword_YES", resourceCulture);
+            }
+        }
+        
+        /// <summary>
+        ///   查找类似 Sample 的本地化字符串。
+        /// </summary>
+        public static string Sample {
+            get {
+                return ResourceManager.GetString("Sample", resourceCulture);
+            }
+        }
+        
+        /// <summary>
+        ///   查找类似 Remove Passwords 的本地化字符串。
+        /// </summary>
+        public static string Security_RemovePassword {
+            get {
+                return ResourceManager.GetString("Security_RemovePassword", resourceCulture);
+            }
+        }
+        
+        /// <summary>
+        ///   查找类似 Set Passwords 的本地化字符串。
+        /// </summary>
+        public static string Security_SetPassword {
+            get {
+                return ResourceManager.GetString("Security_SetPassword", resourceCulture);
+            }
+        }
+        
+        /// <summary>
+        ///   查找类似 Cancel 的本地化字符串。
+        /// </summary>
+        public static string SetPassword_No {
+            get {
+                return ResourceManager.GetString("SetPassword_No", resourceCulture);
+            }
+        }
+        
+        /// <summary>
+        ///   查找类似 Open Password 的本地化字符串。
+        /// </summary>
+        public static string SetPassword_OpenEmptyText {
+            get {
+                return ResourceManager.GetString("SetPassword_OpenEmptyText", resourceCulture);
+            }
+        }
+        
+        /// <summary>
+        ///   查找类似 Document Open Password 的本地化字符串。
+        /// </summary>
+        public static string SetPassword_OpenTitle {
+            get {
+                return ResourceManager.GetString("SetPassword_OpenTitle", resourceCulture);
+            }
+        }
+        
+        /// <summary>
+        ///   查找类似 Permission Password 的本地化字符串。
+        /// </summary>
+        public static string SetPassword_PermissionEmptyText {
+            get {
+                return ResourceManager.GetString("SetPassword_PermissionEmptyText", resourceCulture);
+            }
+        }
+        
+        /// <summary>
+        ///   查找类似 Document Permission Password 的本地化字符串。
+        /// </summary>
+        public static string SetPassword_PermissionTitle {
+            get {
+                return ResourceManager.GetString("SetPassword_PermissionTitle", resourceCulture);
+            }
+        }
+        
+        /// <summary>
+        ///   查找类似 Restrict content copying 的本地化字符串。
+        /// </summary>
+        public static string SetPassword_RestrictCopying {
+            get {
+                return ResourceManager.GetString("SetPassword_RestrictCopying", resourceCulture);
+            }
+        }
+        
+        /// <summary>
+        ///   查找类似 Restrict document printing 的本地化字符串。
+        /// </summary>
+        public static string SetPassword_RestrictPrinting {
+            get {
+                return ResourceManager.GetString("SetPassword_RestrictPrinting", resourceCulture);
+            }
+        }
+        
+        /// <summary>
+        ///   查找类似 Set Passwords 的本地化字符串。
+        /// </summary>
+        public static string SetPassword_Title {
+            get {
+                return ResourceManager.GetString("SetPassword_Title", resourceCulture);
+            }
+        }
+        
+        /// <summary>
+        ///   查找类似 Encrypt 的本地化字符串。
+        /// </summary>
+        public static string SetPassword_YES {
+            get {
+                return ResourceManager.GetString("SetPassword_YES", resourceCulture);
+            }
+        }
+        
         /// <summary>
         ///   查找类似 Clear 的本地化字符串。
         /// </summary>
@@ -530,6 +1124,15 @@ namespace PDF_Office.Strings.MainPage {
             }
         }
         
+        /// <summary>
+        ///   查找类似 Strikethrough 的本地化字符串。
+        /// </summary>
+        public static string Strikethrough_Title {
+            get {
+                return ResourceManager.GetString("Strikethrough_Title", resourceCulture);
+            }
+        }
+        
         /// <summary>
         ///   查找类似 Thumbnails 的本地化字符串。
         /// </summary>
@@ -539,6 +1142,15 @@ namespace PDF_Office.Strings.MainPage {
             }
         }
         
+        /// <summary>
+        ///   查找类似 Underline 的本地化字符串。
+        /// </summary>
+        public static string Underline_Title {
+            get {
+                return ResourceManager.GetString("Underline_Title", resourceCulture);
+            }
+        }
+        
         /// <summary>
         ///   查找类似 Book Mode 的本地化字符串。
         /// </summary>

+ 216 - 0
PDF Office/Strings/MainPage/MainPage.resx

@@ -117,6 +117,56 @@
   <resheader name="writer">
     <value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
   </resheader>
+  <data name="Annotation_DialogAuthor" xml:space="preserve">
+    <value>Author</value>
+  </data>
+  <data name="Annotation_DialogClear" xml:space="preserve">
+    <value>Clear</value>
+  </data>
+  <data name="Annotation_DialogColor" xml:space="preserve">
+    <value>Color</value>
+  </data>
+  <data name="Annotation_DialogNo" xml:space="preserve">
+    <value>Cancel</value>
+  </data>
+  <data name="Annotation_DialogStyle" xml:space="preserve">
+    <value>Style</value>
+  </data>
+  <data name="Annotation_DialogYes" xml:space="preserve">
+    <value>Apply</value>
+  </data>
+  <data name="Annotation_EmptyContext" xml:space="preserve">
+    <value>All comments in this file will be displayed here.</value>
+  </data>
+  <data name="Annotation_EmptyTitle" xml:space="preserve">
+    <value>No Annotations</value>
+  </data>
+  <data name="Annotation_MenuCollapse" xml:space="preserve">
+    <value>Collapse All</value>
+  </data>
+  <data name="Annotation_MenuCopyText" xml:space="preserve">
+    <value>Copy Text</value>
+  </data>
+  <data name="Annotation_MenuDelete" xml:space="preserve">
+    <value>Delete</value>
+  </data>
+  <data name="Annotation_MenuDeleteAll" xml:space="preserve">
+    <value>Delete All Anntations</value>
+  </data>
+  <data name="Annotation_MenuExpand" xml:space="preserve">
+    <value>Expand All</value>
+  </data>
+  <data name="Annotation_MenuExport" xml:space="preserve">
+    <value>Export Annotations to XFDX</value>
+    <comment>导出XFDF</comment>
+  </data>
+  <data name="Annotation_MenuImport" xml:space="preserve">
+    <value>Import Annotations</value>
+    <comment>导入XFDF</comment>
+  </data>
+  <data name="Annotation_Title" xml:space="preserve">
+    <value>Annotation</value>
+  </data>
   <data name="Bookmark_Change" xml:space="preserve">
     <value>Change Target Location</value>
     <comment>更改目标位置</comment>
@@ -124,6 +174,12 @@
   <data name="Bookmark_Delete" xml:space="preserve">
     <value>Delete</value>
   </data>
+  <data name="Bookmark_EmptyContext" xml:space="preserve">
+    <value>Please right-click on the selected page and select "Add Bookmark", or click the "Add" button on the upper right to create a bookmark.</value>
+  </data>
+  <data name="Bookmark_EmptyTitle" xml:space="preserve">
+    <value>No Bookmarks</value>
+  </data>
   <data name="Bookmark_PageN" xml:space="preserve">
     <value>Page {0}</value>
     <comment>第N页</comment>
@@ -134,6 +190,57 @@
   <data name="Bookmark_Title" xml:space="preserve">
     <value>Bookmark</value>
   </data>
+  <data name="ColorMenuItem_Change" xml:space="preserve">
+    <value>Change Color</value>
+  </data>
+  <data name="ColorMenuItem_Restore" xml:space="preserve">
+    <value>Restore Default Color</value>
+  </data>
+  <data name="Compress_Cancel" xml:space="preserve">
+    <value>Cancel</value>
+  </data>
+  <data name="Compress_Compress" xml:space="preserve">
+    <value>Compress</value>
+  </data>
+  <data name="Compress_High" xml:space="preserve">
+    <value>High</value>
+  </data>
+  <data name="Compress_Low" xml:space="preserve">
+    <value>Low</value>
+  </data>
+  <data name="Compress_Minimum" xml:space="preserve">
+    <value>Minimum</value>
+  </data>
+  <data name="Compress_Standard" xml:space="preserve">
+    <value>Standard</value>
+  </data>
+  <data name="Compress_Title" xml:space="preserve">
+    <value>Compress</value>
+  </data>
+  <data name="ContentSelection_Copy" xml:space="preserve">
+    <value>Copy</value>
+  </data>
+  <data name="ContentSelection_Crop" xml:space="preserve">
+    <value>Crop</value>
+  </data>
+  <data name="ContentSelection_Output" xml:space="preserve">
+    <value>Output</value>
+  </data>
+  <data name="ContentSelection_Print" xml:space="preserve">
+    <value>Print</value>
+  </data>
+  <data name="ContentSelection_ZoomArea" xml:space="preserve">
+    <value>Zoom to Selected Area</value>
+  </data>
+  <data name="FreeText_Fill" xml:space="preserve">
+    <value>Fill</value>
+  </data>
+  <data name="FreeText_Font" xml:space="preserve">
+    <value>Font</value>
+  </data>
+  <data name="FreeText_Title" xml:space="preserve">
+    <value>Text</value>
+  </data>
   <data name="GlobalTip_ESCReadMode" xml:space="preserve">
     <value>Enter Read Mode, tap ESC to exit</value>
     <comment>进入阅读模式,提示可以按ESC退出</comment>
@@ -141,6 +248,15 @@
   <data name="GlobalTip_ExitReadMode" xml:space="preserve">
     <value>Exit Read Mode</value>
   </data>
+  <data name="Highlight_Title" xml:space="preserve">
+    <value>Highlight</value>
+  </data>
+  <data name="Link_Page" xml:space="preserve">
+    <value>Page</value>
+  </data>
+  <data name="Link_Title" xml:space="preserve">
+    <value>Link</value>
+  </data>
   <data name="Merge_AddFiles" xml:space="preserve">
     <value>Add Files</value>
   </data>
@@ -192,6 +308,10 @@ Drag files to reorder as you need.</value>
     <value>Rename</value>
     <comment>右键菜单-重命名</comment>
   </data>
+  <data name="Opacity_Title" xml:space="preserve">
+    <value>Opacity</value>
+    <comment>点击水滴按钮打开的透明度弹窗标题</comment>
+  </data>
   <data name="Outline_Add" xml:space="preserve">
     <value>Add Item</value>
   </data>
@@ -237,6 +357,96 @@ Drag files to reorder as you need.</value>
   <data name="Outline_Up" xml:space="preserve">
     <value>Promote</value>
   </data>
+  <data name="PageEdit_Failed" xml:space="preserve">
+    <value>Failed to complete this operation.</value>
+  </data>
+  <data name="PageEdit_MenuCopy" xml:space="preserve">
+    <value>Copy</value>
+  </data>
+  <data name="PageEdit_MenuCut" xml:space="preserve">
+    <value>Cut</value>
+  </data>
+  <data name="PageEdit_MenuDelete" xml:space="preserve">
+    <value>Delete</value>
+  </data>
+  <data name="PageEdit_MenuPaste" xml:space="preserve">
+    <value>Paste</value>
+  </data>
+  <data name="PageEdit_MenuPrint" xml:space="preserve">
+    <value>Print</value>
+  </data>
+  <data name="PageEdit_MenuRotateClockwise" xml:space="preserve">
+    <value>Rotate Clockwise</value>
+  </data>
+  <data name="PageEdit_MenuRotateCounterclockwise" xml:space="preserve">
+    <value>Rotate Counterclockwise</value>
+  </data>
+  <data name="PageEdit_MenuShowPageSize" xml:space="preserve">
+    <value>Display Page Size</value>
+    <comment>显示页面大小</comment>
+  </data>
+  <data name="Palette_Color" xml:space="preserve">
+    <value>Color</value>
+    <comment>调色板-主题颜色</comment>
+  </data>
+  <data name="Palette_More" xml:space="preserve">
+    <value>More</value>
+    <comment>调色板-其他颜色</comment>
+  </data>
+  <data name="Palette_Recently" xml:space="preserve">
+    <value>Recently Used</value>
+    <comment>调色板-最近使用的颜色</comment>
+  </data>
+  <data name="RemovePassword_Context" xml:space="preserve">
+    <value>Are you sure you want to remove the security settings for”{0}” documents?</value>
+  </data>
+  <data name="RemovePassword_No" xml:space="preserve">
+    <value>Cancel</value>
+  </data>
+  <data name="RemovePassword_YES" xml:space="preserve">
+    <value>Remove</value>
+  </data>
+  <data name="Sample" xml:space="preserve">
+    <value>Sample</value>
+    <comment>高亮,删除线,下划线的示例文案</comment>
+  </data>
+  <data name="Security_RemovePassword" xml:space="preserve">
+    <value>Remove Passwords</value>
+  </data>
+  <data name="Security_SetPassword" xml:space="preserve">
+    <value>Set Passwords</value>
+  </data>
+  <data name="SetPassword_No" xml:space="preserve">
+    <value>Cancel</value>
+  </data>
+  <data name="SetPassword_OpenEmptyText" xml:space="preserve">
+    <value>Open Password</value>
+    <comment>开启密码选项未输入内容提示文案</comment>
+  </data>
+  <data name="SetPassword_OpenTitle" xml:space="preserve">
+    <value>Document Open Password</value>
+    <comment>设置开启密码选项标题</comment>
+  </data>
+  <data name="SetPassword_PermissionEmptyText" xml:space="preserve">
+    <value>Permission Password</value>
+    <comment>权限密码选项未输入内容提示文案</comment>
+  </data>
+  <data name="SetPassword_PermissionTitle" xml:space="preserve">
+    <value>Document Permission Password</value>
+    <comment>设置权限密码选项标题</comment>
+  </data>
+  <data name="SetPassword_RestrictCopying" xml:space="preserve">
+    <value>Restrict content copying</value>
+  </data>
+  <data name="SetPassword_RestrictPrinting" xml:space="preserve">
+    <value>Restrict document printing</value>
+  </data>
+  <data name="SetPassword_Title" xml:space="preserve">
+    <value>Set Passwords</value>
+  </data>
+  <data name="SetPassword_YES" xml:space="preserve">
+    <value>Encrypt</value>
+  </data>
   <data name="Signatur_DialogClear" xml:space="preserve">
     <value>Clear</value>
   </data>
@@ -287,9 +497,15 @@ Drag files to reorder as you need.</value>
   <data name="Stamp_Title" xml:space="preserve">
     <value>Stamp</value>
   </data>
+  <data name="Strikethrough_Title" xml:space="preserve">
+    <value>Strikethrough</value>
+  </data>
   <data name="Thumbnails_Title" xml:space="preserve">
     <value>Thumbnails</value>
   </data>
+  <data name="Underline_Title" xml:space="preserve">
+    <value>Underline</value>
+  </data>
   <data name="ViewProperties_Book" xml:space="preserve">
     <value>Book Mode</value>
     <comment>书本模式</comment>

+ 3 - 0
PDF Office/Styles/ButtonStyle.xaml

@@ -495,12 +495,15 @@
         <Style.Triggers>
             <Trigger Property="IsMouseOver" Value="true">
                 <Setter Property="Foreground" Value="{StaticResource color.btn.link.text.hov}" />
+                <Setter Property="Background" Value="Transparent" />
             </Trigger>
             <Trigger Property="IsPressed" Value="true">
                 <Setter Property="Foreground" Value="{StaticResource color.btn.link.text.act}" />
+                <Setter Property="Background" Value="Transparent" />
             </Trigger>
             <Trigger Property="IsEnabled" Value="false">
                 <Setter Property="Foreground" Value="{StaticResource color.btn.link.text.dis}" />
+                <Setter Property="Background" Value="Transparent" />
             </Trigger>
         </Style.Triggers>
     </Style>

+ 5 - 5
PDF Office/Styles/ContextMenuStyle.xaml

@@ -80,7 +80,7 @@
 
         <MenuItem
             Name="BtnSnapCopy"
-            Header="复制"
+            Header="{x:Static mainpage:MainPage.ContentSelection_Copy}"
             IsEnabled="True">
             <!--<MenuItem.Icon>
             <Path Data="M5.24031 1.5H0.5V14.5H15.5V4H7.24031L5.24031 1.5ZM1.5 13.5V2.5H4.75969L6.75969 5H14.5V13.5H1.5ZM4 7.5H12V6.5H4V7.5Z" Fill="Black">
@@ -93,7 +93,7 @@
 
         <MenuItem
             Name="BtnSnapExport"
-            Header="导出"
+            Header="{x:Static mainpage:MainPage.ContentSelection_Output}"
             IsEnabled="True">
             <!--<MenuItem.Icon>
             <Path Data="M5.24031 1.5H0.5V14.5H15.5V4H7.24031L5.24031 1.5ZM1.5 13.5V2.5H4.75969L6.75969 5H14.5V13.5H1.5ZM4 7.5H12V6.5H4V7.5Z" Fill="Black">
@@ -109,7 +109,7 @@
 
         <MenuItem
             Name="BtnSnapCropping"
-            Header="裁剪"
+            Header="{x:Static mainpage:MainPage.ContentSelection_Crop}"
             IsEnabled="True">
             <!--<MenuItem.Icon>
             <Path Data="M5.24031 1.5H0.5V14.5H15.5V4H7.24031L5.24031 1.5ZM1.5 13.5V2.5H4.75969L6.75969 5H14.5V13.5H1.5ZM4 7.5H12V6.5H4V7.5Z" Fill="Black">
@@ -122,7 +122,7 @@
 
         <MenuItem
             Name="BtnSnapZoom"
-            Header="缩放至所选区域"
+            Header="{x:Static mainpage:MainPage.ContentSelection_ZoomArea}"
             IsEnabled="True">
             <!--<MenuItem.Icon>
             <Path Data="M5.24031 1.5H0.5V14.5H15.5V4H7.24031L5.24031 1.5ZM1.5 13.5V2.5H4.75969L6.75969 5H14.5V13.5H1.5ZM4 7.5H12V6.5H4V7.5Z" Fill="Black">
@@ -135,7 +135,7 @@
 
         <MenuItem
             Name="BtnSnapPrint"
-            Header="打印"
+            Header="{x:Static mainpage:MainPage.ContentSelection_Print}"
             IsEnabled="True">
             <!--<MenuItem.Icon>
             <Path Data="M5.24031 1.5H0.5V14.5H15.5V4H7.24031L5.24031 1.5ZM1.5 13.5V2.5H4.75969L6.75969 5H14.5V13.5H1.5ZM4 7.5H12V6.5H4V7.5Z" Fill="Black">

+ 97 - 0
PDF Office/ViewModels/BOTA/AnnotationContentViewModel.cs

@@ -60,6 +60,102 @@ namespace PDF_Office.ViewModels.BOTA
 {
     public class AnnotationContentViewModel : BindableBase, INavigationAware
     {
+        #region 文案
+
+
+        private string T_expand;
+
+        public string T_Expand
+        {
+            get { return T_expand; }
+            set
+            {
+                SetProperty(ref T_expand, value);
+            }
+        }
+        
+
+        private string T_collapse;
+
+        public string T_Collapse
+        {
+            get { return T_collapse; }
+            set
+            {
+                SetProperty(ref T_collapse, value);
+            }
+        }
+        
+
+        private string T_import;
+
+        public string T_Import
+        {
+            get { return T_import; }
+            set
+            {
+                SetProperty(ref T_import, value);
+            }
+        }
+
+        private string T_export;
+
+        public string T_Export
+        {
+            get { return T_export; }
+            set
+            {
+                SetProperty(ref T_export, value);
+            }
+        }
+
+        private string T_deleteAll;
+
+        public string T_DeleteAll
+        {
+            get { return T_deleteAll; }
+            set
+            {
+                SetProperty(ref T_deleteAll, value);
+            }
+        }
+
+        private string T_emptyTitle;
+
+        public string T_EmptyTitle
+        {
+            get { return T_emptyTitle; }
+            set
+            {
+                SetProperty(ref T_emptyTitle, value);
+            }
+        }
+
+        private string T_emptyContext;
+
+        public string T_EmptyContext
+        {
+            get { return T_emptyContext; }
+            set
+            {
+                SetProperty(ref T_emptyContext, value);
+            }
+        }
+
+
+        private void InitString()
+        {
+            T_Expand = App.MainPageLoader.GetString("Annotation_MenuExpand");
+            T_Collapse = App.MainPageLoader.GetString("Annotation_MenuCollapse");
+            T_Import = App.MainPageLoader.GetString("Annotation_MenuImport");
+            T_Export = App.MainPageLoader.GetString("Annotation_MenuExport");
+            T_DeleteAll = App.MainPageLoader.GetString("Annotation_MenuDeleteAll");
+            T_EmptyTitle = App.MainPageLoader.GetString("Annotation_EmptyTitle");
+            T_EmptyContext = App.MainPageLoader.GetString("Annotation_EmptyContext");
+        }
+
+        #endregion
+
         private ListBox listBox;
         private IRegionManager region;
         private IDialogService dialogs;
@@ -144,6 +240,7 @@ namespace PDF_Office.ViewModels.BOTA
             PageSortCommand = new DelegateCommand(PageSortEvent);
             TimeAscendingCommand = new DelegateCommand(TimeAscendingEvent);
             TimeDescendingCommand = new DelegateCommand(TimeDescendingEvent);
+            InitString();
         }
 
         public void HiddenAnnot()

+ 24 - 0
PDF Office/ViewModels/BOTA/BOTAContentViewModel.cs

@@ -12,6 +12,7 @@ using System.Windows.Controls;
 using DryIoc;
 using Prism.Services.Dialogs;
 using PDF_Office.Views.PageEdit;
+using PDF_Office.Properties;
 
 namespace PDF_Office.ViewModels.BOTA
 {
@@ -37,6 +38,18 @@ namespace PDF_Office.ViewModels.BOTA
             }
         }
 
+        private int selectedIndex;
+
+        public int SelectedIndex
+        {
+            get { return selectedIndex; }
+            set
+            {
+                SetProperty(ref selectedIndex, value);
+            }
+        }
+
+
         public string CurrentBar = "";
 
         public DelegateCommand<object> TabControlSelectionChangedCommand { get; set; }
@@ -49,6 +62,8 @@ namespace PDF_Office.ViewModels.BOTA
             TabControlSelectionChangedCommand = new DelegateCommand<object>(TabControlSelectionChangedEvent);
             viewNameByTabItem = new Dictionary<string, string>();
             InitDictionartViewNameByTabItem(ref viewNameByTabItem);
+
+    
         }
 
         private void TabControlSelectionChangedEvent(object e)
@@ -119,6 +134,15 @@ namespace PDF_Office.ViewModels.BOTA
             {
                 pdfViewer = pdfview;
             }
+
+            //大纲和文档同时打开
+            if (Settings.Default.AppProperties.InitialVIew.ShowOutLine && pdfViewer.Document.GetOutlineList().Count > 0)
+            {
+                SelectedIndex = 2;
+                EnterSelectedBar("TabItemOutLine");
+                viewContentViewModel.OpenBOTA = true;
+            }
+
         }
 
         #endregion Navigate

+ 34 - 1
PDF Office/ViewModels/BOTA/BookmarkContentViewModel.cs

@@ -42,6 +42,37 @@ namespace PDF_Office.ViewModels.BOTA
 {
     public class BookmarkContentViewModel : BindableBase, INavigationAware
     {
+        #region 文案
+
+        private string T_emptyTitle;
+
+        public string T_EmptyTitle
+        {
+            get { return T_emptyTitle; }
+            set
+            {
+                SetProperty(ref T_emptyTitle, value);
+            }
+        }
+
+        private string T_emptyContext;
+
+        public string T_EmptyContext
+        {
+            get { return T_emptyContext; }
+            set
+            {
+                SetProperty(ref T_emptyContext, value);
+            }
+        }
+
+        private void InitString()
+        {
+            T_EmptyTitle = App.MainPageLoader.GetString("Bookmark_EmptyTitle");
+            T_EmptyContext = App.MainPageLoader.GetString("Bookmark_EmptyContext");
+        }
+
+        #endregion
         #region 属性
 
         public bool isAddBookMark = false;
@@ -120,6 +151,7 @@ namespace PDF_Office.ViewModels.BOTA
             DeleteCommand = new DelegateCommand<object>(DelegateEvent);
             EditPageIndexCommand = new DelegateCommand<object>(EditPageIndexEvent);
             KeyDownCommand = new DelegateCommand<object>(KeyDownEvent);
+            InitString();
         }
 
         /// <summary>
@@ -312,8 +344,9 @@ namespace PDF_Office.ViewModels.BOTA
         /// <param name="obj"></param>
         private void AddBookmarkEvent(object obj)
         {
+            string info = App.MainPageLoader.GetString("Bookmark_PageN");
             int index = PDFViewer.CurrentIndex;
-            string mark = string.Format($"第{index + 1}页");
+            string mark = string.Format(info, (index + 1).ToString());
 
             System.Windows.Controls.ListView listView = obj as System.Windows.Controls.ListView;
             listView.SelectedItems.Clear();

+ 82 - 0
PDF Office/ViewModels/Dialog/BOTA/ScreenAnnotationDialogViewModel.cs

@@ -34,6 +34,87 @@ namespace PDF_Office.ViewModels.Dialog.BOTA
 {
     internal class ScreenAnnotationDialogViewModel : BindableBase, IDialogAware
     {
+        #region 文案
+
+        private string T_style;
+
+        public string T_Style
+        {
+            get { return T_style; }
+            set
+            {
+                SetProperty(ref T_style, value);
+            }
+        }
+
+        private string T_color;
+
+        public string T_Color
+        {
+            get { return T_color; }
+            set
+            {
+                SetProperty(ref T_color, value);
+            }
+        }
+
+        private string T_author;
+
+        public string T_Author
+        {
+            get { return T_author; }
+            set
+            {
+                SetProperty(ref T_author, value);
+            }
+        }
+
+        private string T_clear;
+
+        public string T_Clear
+        {
+            get { return T_clear; }
+            set
+            {
+                SetProperty(ref T_clear, value);
+            }
+        }
+
+        private string T_apply;
+
+        public string T_Apply
+        {
+            get { return T_apply; }
+            set
+            {
+                SetProperty(ref T_apply, value);
+            }
+        }
+
+        private string T_cancel;
+
+        public string T_Cancel
+        {
+            get { return T_cancel; }
+            set
+            {
+                SetProperty(ref T_cancel, value);
+            }
+        }
+
+
+        private void InitString()
+        {
+            T_Style = App.MainPageLoader.GetString("Annotation_DialogStyle");
+            T_Color = App.MainPageLoader.GetString("Annotation_DialogColor");
+            T_Author = App.MainPageLoader.GetString("Annotation_DialogAuthor");
+            T_Clear = App.MainPageLoader.GetString("Annotation_DialogClear");
+            T_Apply = App.MainPageLoader.GetString("Annotation_DialogYes");
+            T_Cancel = App.MainPageLoader.GetString("Annotation_DialogNo");
+        }
+
+
+        #endregion
         public string Title => "";
 
         public event Action<IDialogResult> RequestClose;
@@ -271,6 +352,7 @@ namespace PDF_Office.ViewModels.Dialog.BOTA
             CancelCommand = new DelegateCommand(CancelEvent);
             OkCommnad = new DelegateCommand<Object>(OkEvent);
             CleanCommand = new DelegateCommand<Object>(CleanEvent);
+            InitString();
         }
 
         private void Loaded(object obj)

+ 188 - 0
PDF Office/ViewModels/Dialog/NoviceGuidDialogViewModel.cs

@@ -0,0 +1,188 @@
+using PDF_Office.Model;
+using PDF_Office.Model.Dialog;
+using Prism.Commands;
+using Prism.Mvvm;
+using Prism.Services.Dialogs;
+using System;
+using System.Collections.Generic;
+using System.Collections.ObjectModel;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+using System.Windows;
+
+namespace PDF_Office.ViewModels.Dialog
+{
+    public class NoviceGuidDialogViewModel :BindableBase,IDialogAware
+    {
+        public string Title => "";
+
+        public event Action<IDialogResult> RequestClose;
+
+        private int selectedIndex;
+
+        /// <summary>
+        /// 选中索引
+        /// </summary>
+        public int SelectedIndex
+        {
+            get { return selectedIndex; }
+            set
+            {
+                SetProperty(ref selectedIndex, value);
+
+                if(SelectedIndex==ItemSource.Count-1)
+                {
+                    SignUpVisible = Visibility.Visible;
+                }
+                else
+                {
+                    SignUpVisible = Visibility.Collapsed;
+                }
+
+                if(SelectedIndex==0)
+                {
+                    NextTimeVisible = Visibility.Visible;
+                }
+                else
+                {
+                    NextTimeVisible = Visibility.Collapsed;
+                }
+            }
+        }
+
+        private Visibility signUpVisible = Visibility.Collapsed;
+
+        /// <summary>
+        /// 是否显示SignUp按钮
+        /// </summary>
+        public Visibility SignUpVisible
+        {
+            get { return signUpVisible; }
+            set
+            {
+                SetProperty(ref signUpVisible, value);
+            }
+        }   
+
+        private Visibility nexttimeVisible;
+
+        public Visibility NextTimeVisible
+        {
+            get { return nexttimeVisible; }
+            set
+            {
+                SetProperty(ref nexttimeVisible, value);
+            }
+        }
+
+
+
+        public DelegateCommand NextPageCommand { get; set; }
+
+        public DelegateCommand PrePageCommand { get; set; }
+
+        public DelegateCommand NextTimeCommand { get; set; }
+
+        public DelegateCommand SignUpCommand { get; set; }
+
+        public ObservableCollection<GuidItemModel> ItemSource { get; set; }
+
+        private IDialogService dialog;
+
+        public NoviceGuidDialogViewModel(IDialogService dialogService)
+        {
+            dialog = dialogService;
+
+            NextPageCommand = new DelegateCommand(NextPage,CanNextPageExcute).ObservesProperty(()=>SelectedIndex);
+            PrePageCommand = new DelegateCommand(PrePage,CanPrePageExcute).ObservesProperty(()=>SelectedIndex);
+            SignUpCommand = new DelegateCommand(SignUp);
+
+            InitItemSource();
+        }
+
+        private void InitItemSource()
+        {
+            ItemSource = new ObservableCollection<GuidItemModel>();
+            ItemSource.Add(new GuidItemModel() { ImageSource = "pack://application:,,,/PDF Office;component/Resources/GuidItems/Guid_Office.png", Title = "PDF Office 全新体验版", Content = "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx" });
+            ItemSource.Add(new GuidItemModel() { ImageSource = "pack://application:,,,/PDF Office;component/Resources/GuidItems/Guid_Annote.png", Title = "强大的PDF注释工具", Content = "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx" });
+            ItemSource.Add(new GuidItemModel() { ImageSource = "pack://application:,,,/PDF Office;component/Resources/GuidItems/Guid_Convert.png", Title = "将PDF转换为可编辑Office", Content = "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx" });
+            ItemSource.Add(new GuidItemModel() { ImageSource = "pack://application:,,,/PDF Office;component/Resources/GuidItems/Guid_FillAndSign.png", Title = "填写表格,签署商务文件", Content = "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx" });
+            ItemSource.Add(new GuidItemModel() { ImageSource = "pack://application:,,,/PDF Office;component/Resources/GuidItems/Guid_SignUp.png", Title = "注册账号享受全功能", Content = "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx" });
+        }
+
+        /// <summary>
+        /// 前一页
+        /// </summary>
+        private void NextPage()
+        {
+            SelectedIndex++;
+        }
+
+        /// <summary>
+        /// 下一页
+        /// </summary>
+        private void PrePage()
+        {
+            SelectedIndex--;
+        }
+
+        /// <summary>
+        /// 注册
+        /// </summary>
+        private void SignUp()
+        {
+            RequestClose.Invoke(new DialogResult());
+            dialog.ShowDialog(DialogNames.RegisterDialog);
+        }
+
+        /// <summary>
+        /// 下一次显示
+        /// </summary>
+        private void NextTime()
+        {
+            //Todo
+        }
+
+
+        //是否可以执行下一页
+        private bool CanNextPageExcute()
+        {
+            if(SelectedIndex>=ItemSource.Count-1)
+            {
+                return false;
+            }
+
+            return true;
+        }
+
+        /// <summary>
+        /// 是否可以执行上一页
+        /// </summary>
+        /// <returns></returns>
+        private bool CanPrePageExcute()
+        {
+            if (SelectedIndex <= 0)
+            {
+                return false;
+            }
+            return true;
+        }
+
+
+        public bool CanCloseDialog()
+        {
+            return true;
+        }
+
+        public void OnDialogClosed()
+        {
+          
+        }
+
+        public void OnDialogOpened(IDialogParameters parameters)
+        {
+           
+        }
+    }
+}

+ 94 - 0
PDF Office/ViewModels/Dialog/ToolsDialogs/CompressDialogs/CompressDialogViewModel.cs

@@ -20,6 +20,98 @@ namespace PDF_Office.ViewModels.Dialog.ToolsDialogs.CompressDialogs
 {
     public class CompressDialogViewModel : BindableBase, IDialogAware
     {
+        #region 文案
+
+        private string T_title;
+
+        public string T_Title
+        {
+            get { return T_title; }
+            set
+            {
+                SetProperty(ref T_title, value);
+            }
+        }
+
+        private string T_high;
+
+        public string T_High
+        {
+            get { return T_high; }
+            set
+            {
+                SetProperty(ref T_high, value);
+            }
+        }
+
+        private string T_standard;
+
+        public string T_Standard
+        {
+            get { return T_standard; }
+            set
+            {
+                SetProperty(ref T_standard, value);
+            }
+        }
+
+        private string T_low;
+
+        public string T_Low
+        {
+            get { return T_low; }
+            set
+            {
+                SetProperty(ref T_low, value);
+            }
+        }
+
+        private string T_minimum;
+
+        public string T_Minimum
+        {
+            get { return T_minimum; }
+            set
+            {
+                SetProperty(ref T_minimum, value);
+            }
+        }
+
+        private string T_compress;
+
+        public string T_Compress
+        {
+            get { return T_compress; }
+            set
+            {
+                SetProperty(ref T_compress, value);
+            }
+        }
+
+        private string T_cancel;
+
+        public string T_Cancel
+        {
+            get { return T_cancel; }
+            set
+            {
+                SetProperty(ref T_cancel, value);
+            }
+        }
+
+        private void InitSting()
+        {
+            T_Title = App.MainPageLoader.GetString("Compress_Title");
+            T_High = App.MainPageLoader.GetString("Compress_High");
+            T_Standard = App.MainPageLoader.GetString("Compress_Standard");
+            T_Low = App.MainPageLoader.GetString("Compress_Low");
+            T_Minimum = App.MainPageLoader.GetString("Compress_Minimum");
+            T_Compress = App.MainPageLoader.GetString("Compress_Compress");
+            T_Cancel = App.MainPageLoader.GetString("Compress_Cancel");
+        }
+
+        #endregion
+
         #region 参数和属性
         private CompressDialogModel compressDialogModel;
         private IntPtr compressingIntpr = IntPtr.Zero;
@@ -48,6 +140,8 @@ namespace PDF_Office.ViewModels.Dialog.ToolsDialogs.CompressDialogs
 
         public CompressDialogViewModel(IDialogService dialogService)
         {
+            InitSting();
+
             LargeQualityCommand = new DelegateCommand(LargeQuality);
             StandardQualityCommand = new DelegateCommand(StandardQuality);
             LittleQualityCommand = new DelegateCommand(LittleQuality);

+ 37 - 1
PDF Office/ViewModels/Dialog/ToolsDialogs/SaftyDialogs/DeleteSafetySettingsDialogViewModel.cs

@@ -14,6 +14,39 @@ namespace PDF_Office.ViewModels.Dialog.ToolsDialogs.SaftyDialogs
 {
     public class DeleteSafetySettingsDialogViewModel : BindableBase, IDialogAware
     {
+        #region 文案
+
+        private string T_yes;
+
+        public string T_YES
+        {
+            get { return T_yes; }
+            set
+            {
+                SetProperty(ref T_yes, value);
+            }
+        }
+
+        private string T_no;
+
+        public string T_No
+        {
+            get { return T_no; }
+            set
+            {
+                SetProperty(ref T_no, value);
+            }
+        }
+
+
+        private void InitString()
+        {
+            T_YES = App.MainPageLoader.GetString("RemovePassword_YES");
+            T_No = App.MainPageLoader.GetString("RemovePassword_No");
+        }
+
+        #endregion
+
         #region 参数和属性
         DeleteSafetySettintgsModel deleteSafetySettintgsModel;
         public IDialogService dialogs;
@@ -34,6 +67,7 @@ namespace PDF_Office.ViewModels.Dialog.ToolsDialogs.SaftyDialogs
 
         public DeleteSafetySettingsDialogViewModel(IDialogService dialogService)
         {
+            InitString();
             dialogs = dialogService;
             RemoveSecuritySettingsCommand = new DelegateCommand(RemoveSecuritySettings);
             CancelCommand = new DelegateCommand(Cancel);
@@ -146,7 +180,9 @@ namespace PDF_Office.ViewModels.Dialog.ToolsDialogs.SaftyDialogs
             if (doc != null)
             {
                 document = doc;
-                DeleteSecurityMsg = "Are you sure you want to remove the security settings for”" + document.FileName + "” documents?";
+                string info = App.MainPageLoader.GetString("RemovePassword_Context");
+                string mas = string.Format(info, document.FileName);
+                DeleteSecurityMsg = mas;
             }
         }
         #endregion

+ 98 - 3
PDF Office/ViewModels/Dialog/ToolsDialogs/SaftyDialogs/SetPasswordDialogViewModel.cs

@@ -25,6 +25,100 @@ namespace PDF_Office.ViewModels.Dialog.ToolsDialogs.SaftyDialogs
 {
     public class SetPasswordDialogViewModel : BindableBase, IDialogAware
     {
+        #region 文案
+
+        private string T_title;
+
+        public string T_Title
+        {
+            get { return T_title; }
+            set
+            {
+                SetProperty(ref T_title, value);
+            }
+        }
+
+        private string T_openTitle;
+
+        public string T_OpenTitle
+        {
+            get { return T_openTitle; }
+            set
+            {
+                SetProperty(ref T_openTitle, value);
+            }
+        }
+
+        private string T_permissionTitle;
+
+        public string T_PermissionTitle
+        {
+            get { return T_permissionTitle; }
+            set
+            {
+                SetProperty(ref T_permissionTitle, value);
+            }
+        }
+
+        private string T_restrictPrinting;
+
+        public string T_RestrictPrinting
+        {
+            get { return T_restrictPrinting; }
+            set
+            {
+                SetProperty(ref T_restrictPrinting, value);
+            }
+        }
+
+
+        private string T_restrictCopying;
+
+        public string T_RestrictCopying
+        {
+            get { return T_restrictCopying; }
+            set
+            {
+                SetProperty(ref T_restrictCopying, value);
+            }
+        }
+
+        private string T_yes;
+
+        public string T_Yes
+        {
+            get { return T_yes; }
+            set
+            {
+                SetProperty(ref T_yes, value);
+            }
+        }
+
+        private string T_no;
+
+        public string T_No
+        {
+            get { return T_no; }
+            set
+            {
+                SetProperty(ref T_no, value);
+            }
+        }
+
+
+        private void InitString()
+        {
+            T_Title = App.MainPageLoader.GetString("SetPassword_Title");
+            T_OpenTitle = App.MainPageLoader.GetString("SetPassword_OpenTitle");
+            T_PermissionTitle = App.MainPageLoader.GetString("SetPassword_PermissionTitle");
+            T_RestrictPrinting = App.MainPageLoader.GetString("SetPassword_RestrictPrinting");
+            T_RestrictCopying = App.MainPageLoader.GetString("SetPassword_RestrictCopying");
+            T_Yes = App.MainPageLoader.GetString("SetPassword_YES");
+            T_No = App.MainPageLoader.GetString("SetPassword_No");
+        }
+
+        #endregion
+
         #region 参数和属性
         private SetPasswordDialogModel setPasswordDialogModel = new SetPasswordDialogModel();
         private CPDFViewer cPDFViewer;
@@ -62,7 +156,7 @@ namespace PDF_Office.ViewModels.Dialog.ToolsDialogs.SaftyDialogs
             }
         }
 
-        private string _openPasswordMsg = "Open Password";
+        private string _openPasswordMsg = App.MainPageLoader.GetString("SetPassword_OpenEmptyText");
         public string OpenPasswordMsg
         {
             get { return _openPasswordMsg; }
@@ -71,7 +165,7 @@ namespace PDF_Office.ViewModels.Dialog.ToolsDialogs.SaftyDialogs
                 SetProperty(ref _openPasswordMsg, value);
             }
         }
-        private string _permissionsPasswordMsg = "Permission Password";
+        private string _permissionsPasswordMsg = App.MainPageLoader.GetString("SetPassword_PermissionEmptyText");
         public string PermissionsPasswordMsg
         {
             get { return _permissionsPasswordMsg; }
@@ -190,6 +284,7 @@ namespace PDF_Office.ViewModels.Dialog.ToolsDialogs.SaftyDialogs
 
         public SetPasswordDialogViewModel(IDialogService dialogService)
         {
+            InitString();
             dialogs = dialogService;
             DisplayPasswordCommand = new DelegateCommand<object>(DisplayPassword);
             SetOpenPasswordCommand = new DelegateCommand<object>(SetOpenPassword);
@@ -402,7 +497,7 @@ namespace PDF_Office.ViewModels.Dialog.ToolsDialogs.SaftyDialogs
                 if (sfd.ShowDialog() == System.Windows.Forms.DialogResult.OK)
                 {
                     cPDFViewer.Document.Encrypt(openPassword, permissionsPassword, permissionsInfo);
-                    cPDFViewer.Document.WriteToFilePath(sfd.FileName);  
+                    cPDFViewer.Document.WriteToFilePath(sfd.FileName);
 
                     MessageBoxEx.Show("保存成功");
                     DialogParameters dialogParameters = new DialogParameters();

+ 26 - 4
PDF Office/ViewModels/MainWindowViewModel.cs

@@ -221,11 +221,24 @@ namespace PDF_Office.ViewModels
                 System.Windows.Application.Current.Dispatcher.BeginInvoke(System.Windows.Threading.DispatcherPriority.Send, new Action(() =>
                 {
                     region.RequestNavigate(RegionNames.MainRegion, "MainContent");
-                    if (App.IsShowRegist)
+
+                    try
                     {
-                        OpenRegister();
+                        //避免注册弹窗和新手引导弹窗一起弹出
+                        if (App.IsShowRegist && !Settings.Default.IsNewUser)
+                        {
+                            OpenRegister();
+                        }
+
+                        //新用户弹出引导弹窗
+                        if (Settings.Default.IsNewUser)
+                        {
+                            ShowGuidDialog();
+                            Settings.Default.IsNewUser = false;
+                            Settings.Default.Save();
+                        }
                     }
-
+                    catch { }
                 }
                 ));
                 App.IsFirstOpen = false;
@@ -237,11 +250,20 @@ namespace PDF_Office.ViewModels
                 {
                     LoginVis = Visibility.Visible;
                 }
-               
+
+
             }
             
         }
 
+        //显示新手引导弹窗
+        private void ShowGuidDialog()
+        {
+            dialogs.ShowDialog(DialogNames.GuidDialog, null, r =>
+            {
+            });
+        }
+
         //打开注册弹窗
         public void OpenRegister()
         {

+ 1 - 1
PDF Office/ViewModels/PageEdit/PageEditContentViewModel.cs

@@ -244,7 +244,7 @@ namespace PDF_Office.ViewModels.PageEdit
         }
 
 
-        private string toastText = "操作失败";
+        private string toastText = App.MainPageLoader.GetString("PageEdit_Failed");
         /// <summary>
         /// Toast提示
         /// </summary>

+ 11 - 0
PDF Office/ViewModels/PropertyPanel/AnnotPanel/FreehandAnnotPropertyViewModel.cs

@@ -42,6 +42,16 @@ namespace PDF_Office.ViewModels.PropertyPanel.AnnotPanel
 
     public class FreehandAnnotPropertyViewModel : BindableBase, INavigationAware
     {
+        #region 文案
+
+
+        private void InitSting()
+        {
+
+        }
+
+        #endregion
+
         #region 属性
         //手绘画笔橡皮擦的大小列表
         public List<ComboDataItem> PenSizeItems { get; protected set; }
@@ -99,6 +109,7 @@ namespace PDF_Office.ViewModels.PropertyPanel.AnnotPanel
             SetEraserThickCommand = new DelegateCommand<object>(SelectEraserThickChanged);
             LineModeCheckedCommand = new DelegateCommand<object>(LineMode_Checked);
             SelectedOpacityValueCommand = new DelegateCommand<object>(SelectedOpacityValue);
+            InitSting();
 
             InitVariable();
         }

+ 46 - 0
PDF Office/ViewModels/PropertyPanel/AnnotPanel/FreetextAnnotPropertyViewModel.cs

@@ -22,6 +22,51 @@ namespace PDF_Office.ViewModels.PropertyPanel.AnnotPanel
 {
     public class FreetextAnnotPropertyViewModel : BindableBase, INavigationAware
     {
+        #region 文案
+
+        private string T_title;
+
+        public string T_Title
+        {
+            get { return T_title; }
+            set
+            {
+                SetProperty(ref T_title, value);
+            }
+        }
+
+        private string T_font;
+
+        public string T_Font
+        {
+            get { return T_font; }
+            set
+            {
+                SetProperty(ref T_font, value);
+            }
+        }
+        
+        private string T_fill;
+
+        public string T_Fill
+        {
+            get { return T_fill; }
+            set
+            {
+                SetProperty(ref T_fill, value);
+            }
+        }
+
+
+        private void InitString()
+        {
+            T_Title = App.MainPageLoader.GetString("FreeText_Title");
+            T_Font = App.MainPageLoader.GetString("FreeText_Font");
+            T_Fill = App.MainPageLoader.GetString("FreeText_Fill");
+        }
+
+        #endregion
+
         private FontBoardVm _fontVm = new FontBoardVm(true);
         public FontBoardVm FontVm
         {
@@ -91,6 +136,7 @@ namespace PDF_Office.ViewModels.PropertyPanel.AnnotPanel
 
         public FreetextAnnotPropertyViewModel()
         {
+            InitString();
             //文本设置
             //预设文本样式
             SelectedPresetFontCommand = new DelegateCommand(SelectedPresetFont);

+ 34 - 0
PDF Office/ViewModels/PropertyPanel/AnnotPanel/LinkAnnotPropertyViewModel.cs

@@ -39,6 +39,39 @@ namespace PDF_Office.ViewModels.PropertyPanel.AnnotPanel
 {
     internal class LinkAnnotPropertyViewModel : BindableBase, INavigationAware
     {
+
+        #region 文案
+
+        private string T_title;
+
+        public string T_Title
+        {
+            get { return T_title; }
+            set
+            {
+                SetProperty(ref T_title, value);
+            }
+        }
+
+        private string T_page;
+
+        public string T_Page
+        {
+            get { return T_page; }
+            set
+            {
+                SetProperty(ref T_page, value);
+            }
+        }
+
+        private void InitString()
+        {
+            T_Title = App.MainPageLoader.GetString("Link_Title");
+            T_Page = App.MainPageLoader.GetString("Link_Page");
+        }
+
+        #endregion
+
         public AnnotAttribEvent AnnotAttribEvent { get; set; }
 
         private LinkAnnotArgs linkAnnotArgs;
@@ -490,6 +523,7 @@ namespace PDF_Office.ViewModels.PropertyPanel.AnnotPanel
             ToggleButtonTabCommand = new DelegateCommand<object>(ToggleButtonTabSelected);
 
             isLoaded = true;
+            InitString();
         }
 
         private void PageWebTextKeyDown(object obj)

+ 3 - 3
PDF Office/ViewModels/PropertyPanel/AnnotPanel/TextAnnotPropertyViewModel.cs

@@ -158,13 +158,13 @@ namespace PDF_Office.ViewModels.PropertyPanel.AnnotPanel
             switch (BasicVm.AnnotType)
             {
                 case AnnotArgsType.AnnotHighlight:
-                    BasicVm.AnnotTypeTitle = "高亮";
+                    BasicVm.AnnotTypeTitle = App.MainPageLoader.GetString("Highlight_Title");
                     break;
                 case AnnotArgsType.AnnotUnderline:
-                    BasicVm.AnnotTypeTitle = "下划线";
+                    BasicVm.AnnotTypeTitle = App.MainPageLoader.GetString("Underline_Title");
                     break;
                 case AnnotArgsType.AnnotStrikeout:
-                    BasicVm.AnnotTypeTitle = "删除线";
+                    BasicVm.AnnotTypeTitle = App.MainPageLoader.GetString("Strikethrough_Title");
                     break;
                 case AnnotArgsType.AnnotSquiggly:
                     BasicVm.AnnotTypeTitle = "波浪线";

+ 34 - 0
PDF Office/ViewModels/Tools/ToolsBarContentViewModel.cs

@@ -27,6 +27,39 @@ namespace PDF_Office.ViewModels.Tools
 {
     public class ToolsBarContentViewModel : BindableBase, INavigationAware
     {
+        #region 文案
+
+        private string T_setPassWord;
+
+        public string T_SetPassWord
+        {
+            get { return T_setPassWord; }
+            set
+            {
+                SetProperty(ref T_setPassWord, value);
+            }
+        }
+
+        private string T_removePassword;
+
+        public string T_RemovePassword
+        {
+            get { return T_removePassword; }
+            set
+            {
+                SetProperty(ref T_removePassword, value);
+            }
+        }
+
+
+        private void InitString()
+        {
+            T_SetPassWord = App.MainPageLoader.GetString("Security_SetPassword");
+            T_RemovePassword = App.MainPageLoader.GetString("Security_RemovePassword");
+        }
+
+        #endregion
+
         private CPDFViewer PDFViewer;
 
         private ViewContentViewModel viewContentViewModel;
@@ -86,6 +119,7 @@ namespace PDF_Office.ViewModels.Tools
         public DelegateCommand CropAllPagesWMCommand { get; set; }
         public ToolsBarContentViewModel(IDialogService dialogService, IEventAggregator eventAggregator)
         {
+            InitString();
             dialogs = dialogService;
             this.eventAggregator = eventAggregator;
             unicode = App.mainWindowViewModel.SelectedItem.Unicode;

+ 16 - 2
PDF Office/ViewModels/ViewContentViewModel.cs

@@ -32,6 +32,7 @@ using PDF_Office.Views.Tools;
 using System.Windows.Input;
 using PDF_Office.ViewModels.PropertyPanel.AnnotPanel;
 using ImTools;
+using PDF_Office.Properties;
 
 namespace PDF_Office.ViewModels
 {
@@ -829,7 +830,11 @@ namespace PDF_Office.ViewModels
             switch (args)
             {
                 case "Guid":
-                    //TODO 打开内嵌文档
+                    //打开内嵌文档
+                    if (File.Exists(App.GuidPDFPath))
+                    {
+                        App.mainWindowViewModel.AddTabItem(App.GuidPDFPath);
+                    }
                     break;
 
                 case "Online":
@@ -1717,7 +1722,6 @@ namespace PDF_Office.ViewModels
             CanSave = PDFViewer.UndoManager.CanSave;
             CanUndo = PDFViewer.UndoManager.CanUndo;
             CanRedo = PDFViewer.UndoManager.CanRedo;
-            region.Regions[ViwerRegionName].RemoveAll();
 
             //OpenFileInfo 内容赋值给PDFViewer
             GetOpenFileInfo();
@@ -1725,6 +1729,9 @@ namespace PDF_Office.ViewModels
             region.AddToRegion(ViwerRegionName, PDFViewer);
         }
 
+        /// <summary>
+        /// 还原上一次浏览的视图相关设置
+        /// </summary>
         private void GetOpenFileInfo()
         {
             OpenFileInfo = SettingHelper.GetFileInfo(PDFViewer.Document.FilePath);
@@ -1768,6 +1775,13 @@ namespace PDF_Office.ViewModels
                     PDFViewer.SetDrawMode(OpenFileInfo.LastDrawMode);
                 }
             }
+            else
+            {
+                //新文档应用默认设置
+                PDFViewer.ChangeViewMode(Settings.Default.AppProperties.InitialVIew.PageView);
+
+                PDFViewer.ChangeFitMode(Settings.Default.AppProperties.InitialVIew.ZoomMode);
+            }
         }
 
         /// <summary>

+ 7 - 7
PDF Office/Views/BOTA/AnnotationContent.xaml

@@ -171,7 +171,7 @@
                     Margin="0,12,0,0"
                     FontFamily="Segoe UI"
                     FontSize="16"
-                    Text="No markup found"
+                    Text="{Binding T_EmptyTitle}"
                     TextAlignment="Center" />
                 <TextBlock
                     Name="txtEmpty2"
@@ -180,7 +180,7 @@
                     FontFamily="Segoe UI"
                     FontSize="16"
                     Foreground="#94989C"
-                    Text="All comments for this document will be displayed here."
+                    Text="{Binding T_EmptyContext}"
                     TextAlignment="Center"
                     TextWrapping="Wrap" />
             </StackPanel>
@@ -247,7 +247,7 @@
                                     Name="MenuExpandAll"
                                     Width="auto"
                                     Click="MenuExpandAll_Click"
-                                    Header="全部展开">
+                                    Header="{Binding T_Expand}">
                                     <MenuItem.Icon>
                                         <Border Background="Transparent" />
                                     </MenuItem.Icon>
@@ -255,7 +255,7 @@
                                 <MenuItem
                                     Name="MenuCollapseAll"
                                     Click="MenuCollapseAll_Click"
-                                    Header="全部折叠" />
+                                    Header="{Binding T_Collapse}" />
                                 <MenuItem Name="MenuSort" Visibility="Collapsed">
                                     <MenuItem.Header>
                                         <TextBlock Name="MenuSortText" Text="排序" />
@@ -306,15 +306,15 @@
                                 <MenuItem
                                     Name="MenuImport"
                                     Command="{Binding ImportCommentsCommand}"
-                                    Header="导入注释为XFDF格式" />
+                                    Header="{Binding T_Import}" />
                                 <MenuItem
                                     Name="MenuExport"
                                     Command="{Binding ExportCommentsCommand}"
-                                    Header="导出注释为XFDF格式" />
+                                    Header="{Binding T_Export}" />
                                 <MenuItem
                                     Name="MenuDeleteAll"
                                     Command="{Binding DeleteAllCommand}"
-                                    Header="删除所有注释" />
+                                    Header="{Binding T_DeleteAll}" />
                             </ContextMenu>
                         </Button.ContextMenu>
                     </Button>

+ 4 - 2
PDF Office/Views/BOTA/BOTAContent.xaml

@@ -2,6 +2,7 @@
     x:Class="PDF_Office.Views.BOTA.BOTAContent"
     xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
     xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
+    xmlns:bota="clr-namespace:PDF_Office.ViewModels.BOTA"
     xmlns:convert="clr-namespace:PDF_Office.DataConvert"
     xmlns:customcontrol="clr-namespace:PDF_Office.CustomControl"
     xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
@@ -9,6 +10,7 @@
     xmlns:local="clr-namespace:PDF_Office.Views.BOTA"
     xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
     xmlns:prism="http://prismlibrary.com/"
+    d:DataContext="{d:DesignInstance Type=bota:BOTAContentViewModel}"
     d:DesignHeight="450"
     d:DesignWidth="800"
     prism:ViewModelLocator.AutoWireViewModel="True"
@@ -71,6 +73,7 @@
             Grid.ColumnSpan="2"
             Background="Transparent"
             PreviewMouseLeftButtonDown="TabControl_PreviewMouseLeftButtonDown"
+            SelectedIndex="{Binding SelectedIndex, Mode=TwoWay}"
             Style="{StaticResource TabControlWithUnderLineStyle}"
             TabStripPlacement="Left">
             <!--  建立一个空的标头占位  -->
@@ -104,8 +107,7 @@
                     <PathGeometry Figures="M3 6H6V5C6 4.44772 6.44772 4 7 4H18C18.5523 4 19 4.44772 19 5V9C19 9.55228 18.5523 10 18 10H7C6.44772 10 6 9.55228 6 9V8H3V14L6 14V13C6 12.4477 6.44772 12 7 12H18C18.5523 12 19 12.4477 19 13V17C19 17.5523 18.5523 18 18 18H7C6.44772 18 6 17.5523 6 17V16H3C1.89543 16 1 15.1046 1 14V6V2H3V6ZM8 6V8H17V6H8ZM8 16V14H17V16H8Z" />
                 </customcontrol:IconAndTextTabItem.NormalPathIcon>
                 <customcontrol:IconAndTextTabItem.SelectedIcon>
-                    <PathGeometry Figures="M3 6H6V5C6 4.44772 6.44772 4 7 4H18C18.5523 4 19 4.44772 19 5V9C19 9.55228 18.5523 10 18 10H7C6.44772 10 6 9.55228 6 9V8H3V14L6 14V13C6 12.4477 6.44772 12 7 12H18C18.5523 12 19 12.4477 19 13V17C19 17.5523 18.5523 18 18 18H7C6.44772 18 6 17.5523 6 17V16H3C1.89543 16 1 15.1046 1 14V6V2H3V6Z" >
-                    </PathGeometry>
+                    <PathGeometry Figures="M3 6H6V5C6 4.44772 6.44772 4 7 4H18C18.5523 4 19 4.44772 19 5V9C19 9.55228 18.5523 10 18 10H7C6.44772 10 6 9.55228 6 9V8H3V14L6 14V13C6 12.4477 6.44772 12 7 12H18C18.5523 12 19 12.4477 19 13V17C19 17.5523 18.5523 18 18 18H7C6.44772 18 6 17.5523 6 17V16H3C1.89543 16 1 15.1046 1 14V6V2H3V6Z" />
                 </customcontrol:IconAndTextTabItem.SelectedIcon>
             </customcontrol:IconAndTextTabItem>
             <customcontrol:IconAndTextTabItem

+ 6 - 5
PDF Office/Views/BOTA/BookmarkContent.xaml

@@ -12,6 +12,7 @@
     xmlns:local="clr-namespace:PDF_Office.Views.BOTA"
     xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
     xmlns:prism="http://prismlibrary.com/"
+    xmlns:mainPageLoader="clr-namespace:PDF_Office.Strings.MainPage"
     d:DataContext="{d:DesignInstance Type=bota:BookmarkContentViewModel}"
     d:DesignHeight="450"
     d:DesignWidth="300"
@@ -92,12 +93,12 @@
                 <MenuItem
                     Click="MenuItemRename_Click"
                     CommandParameter="{Binding RelativeSource={RelativeSource Mode=FindAncestor, AncestorType=ContextMenu}, Path=PlacementTarget.DataContext}"
-                    Header="重命名" />
+                    Header="{x:Static mainPageLoader:MainPage.Bookmark_Rename}" />
                 <MenuItem
                     Command="{Binding DataContext.EditPageIndexCommand, RelativeSource={RelativeSource AncestorType={x:Type UserControl}}}"
                     CommandParameter="{Binding RelativeSource={RelativeSource Mode=FindAncestor, AncestorType=ContextMenu}, Path=PlacementTarget.DataContext}"
-                    Header="更改目标位置" />
-                <MenuItem Click="MenuItemDeleteCommand_Click" Header="删除" />
+                    Header="{x:Static mainPageLoader:MainPage.Bookmark_Change}" />
+                <MenuItem Click="MenuItemDeleteCommand_Click" Header="{x:Static mainPageLoader:MainPage.Bookmark_Delete}" />
             </ContextMenu>
         </ResourceDictionary>
     </UserControl.Resources>
@@ -181,7 +182,7 @@
                 FontFamily="Segoe UI"
                 FontSize="14"
                 Foreground="{StaticResource color.sys.text.neutral.lv2}"
-                Text="No bookmark found"
+                Text="{Binding T_EmptyTitle}"
                 TextAlignment="Center" />
             <TextBlock
                 Name="txtEmpty2"
@@ -189,7 +190,7 @@
                 FontFamily="Segoe UI"
                 FontSize="14"
                 Foreground="{StaticResource color.sys.text.neutral.lv3}"
-                Text="Please right-click on the selected page and select Add Bookmark, or click the Add button on the upper right to create a bookmark."
+                Text="{Binding T_EmptyContext}"
                 TextAlignment="Center"
                 TextWrapping="Wrap" />
         </StackPanel>

+ 6 - 6
PDF Office/Views/Dialog/BOTA/ScreenAnnotationDialog.xaml

@@ -205,19 +205,19 @@
                     Margin="20,0"
                     FontSize="14"
                     FontWeight="Bold"
-                    Text="类型" />
+                    Text="{Binding T_Style}" />
                 <TextBlock
                     Grid.Row="2"
                     Margin="20,0"
                     FontSize="14"
                     FontWeight="Bold"
-                    Text="颜色" />
+                    Text="{Binding T_Color}" />
                 <TextBlock
                     Grid.Row="4"
                     Margin="20,0"
                     FontSize="14"
                     FontWeight="Bold"
-                    Text="作者" />
+                    Text="{Binding T_Author}" />
                 <WrapPanel
                     Name="WrapPanelIco"
                     Grid.Row="1"
@@ -527,7 +527,7 @@
                     Background="Transparent"
                     BorderBrush="Transparent"
                     Command="{Binding CleanCommand}"
-                    Content="清除"
+                    Content="{Binding T_Clear}"
                     FontFamily="Segoe UI"
                     FontSize="14"
                     Foreground=" #1770F4"
@@ -539,7 +539,7 @@
                         Margin="20,0,0,0"
                         HorizontalAlignment="Left"
                         Command="{Binding OkCommnad}"
-                        Content="确定"
+                        Content="{Binding T_Apply}"
                         FontFamily="Segoe UI"
                         FontSize="14"
                         Style="{StaticResource Btn.cta}" />
@@ -549,7 +549,7 @@
                         Margin="30,0,0,0"
                         HorizontalAlignment="Right"
                         Command="{Binding CancelCommand}"
-                        Content="取消"
+                        Content="{Binding T_Cancel}"
                         FontFamily="Segoe UI"
                         FontSize="14"
                         Style="{StaticResource Btn.cta}" />

File diff suppressed because it is too large
+ 232 - 0
PDF Office/Views/Dialog/NoviceGuidDialog.xaml


+ 28 - 0
PDF Office/Views/Dialog/NoviceGuidDialog.xaml.cs

@@ -0,0 +1,28 @@
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+using System.Windows;
+using System.Windows.Controls;
+using System.Windows.Data;
+using System.Windows.Documents;
+using System.Windows.Input;
+using System.Windows.Media;
+using System.Windows.Media.Imaging;
+using System.Windows.Navigation;
+using System.Windows.Shapes;
+
+namespace PDF_Office.Views.Dialog
+{
+    /// <summary>
+    /// NoviceGuidDialog.xaml 的交互逻辑
+    /// </summary>
+    public partial class NoviceGuidDialog : UserControl
+    {
+        public NoviceGuidDialog()
+        {
+            InitializeComponent();
+        }
+    }
+}

+ 8 - 8
PDF Office/Views/Dialog/ToolsDialogs/CompressDialogs/CompressDialog.xaml

@@ -5,27 +5,27 @@
              xmlns:cus="clr-namespace:PDF_Office.CustomControl"
              prism:Dialog.WindowStyle="{StaticResource DialogWindowStyle}"
              xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
-             xmlns:prism="http://prismlibrary.com/" xmlns:compressdialogs="clr-namespace:PDF_Office.ViewModels.Dialog.ToolsDialogs.CompressDialogs" 
+             xmlns:prism="http://prismlibrary.com/" xmlns:compressdialogs="clr-namespace:PDF_Office.ViewModels.Dialog.ToolsDialogs.CompressDialogs" d:DataContext="{d:DesignInstance Type=compressdialogs:CompressDialogViewModel}"
              prism:ViewModelLocator.AutoWireViewModel="True"
              d:DesignHeight="226"
              d:DesignWidth="468"
              mc:Ignorable="d">
-    <cus:DialogContent Header="Compress">
+    <cus:DialogContent Header="{Binding T_Title}">
         <cus:DialogContent.Content>
             <Grid Grid.Row="1" Width="436" Height="112">
                 <StackPanel>
                     <RadioButton   Margin="0,0,0,8"  Command="{Binding LargeQualityCommand}" Style="{StaticResource RadioButtonStyleText}" FontSize="14" Height="22" >
-                        <TextBlock Text="Large Fill Size"  ></TextBlock>
+                        <TextBlock Text="{Binding T_High}"  ></TextBlock>
                     </RadioButton>
 
                     <RadioButton  Margin="0,0,0,8"  Command="{Binding StandardQualityCommand}" Style="{StaticResource RadioButtonStyleText}" FontSize="14" Height="22">
-                        <TextBlock Text="Standard File Size" ></TextBlock>
+                        <TextBlock Text="{Binding T_Standard}" ></TextBlock>
                     </RadioButton>
                     <RadioButton  Margin="0,0,0,8"  Command="{Binding LittleQualityCommand}"  IsChecked="True" Style="{StaticResource RadioButtonStyleText}" FontSize="14" Height="22">
-                        <TextBlock Text="Small File Size" ></TextBlock>
+                        <TextBlock Text="{Binding T_Low}" ></TextBlock>
                     </RadioButton>
                     <RadioButton  Margin="0,0,0,0"  Command="{Binding MicroQualityCommand}" Style="{StaticResource RadioButtonStyleText}" FontSize="14" Height="22">
-                        <TextBlock Text="Minimum File Size" ></TextBlock>
+                        <TextBlock Text="{Binding T_Minimum}" ></TextBlock>
                     </RadioButton>
                 </StackPanel>
             </Grid>
@@ -38,10 +38,10 @@
                 </Button>
             </StackPanel>-->
             <StackPanel Orientation="Horizontal" HorizontalAlignment="Right">
-                    <Button  Width="80" Height="32" Margin="0,0,16,0" Command="{Binding CompressCommand}" Style="{StaticResource Btn.cta}" Content="Compress" >
+                    <Button  Width="80" Height="32" Margin="0,0,16,0" Command="{Binding CompressCommand}" Style="{StaticResource Btn.cta}" Content="{Binding T_Compress}" >
                    
                 </Button>
-                    <Button  Width="80" Height="32" Margin="0,0,16,0" Command="{Binding ConfirmCompressCommand}"  Style="{StaticResource btn.sec}" Content="取消">
+                    <Button  Width="80" Height="32" Margin="0,0,16,0" Command="{Binding ConfirmCompressCommand}"  Style="{StaticResource btn.sec}" Content="{Binding T_Cancel}">
                    
                 </Button>
             </StackPanel>

+ 2 - 2
PDF Office/Views/Dialog/ToolsDialogs/SaftyDialogs/DeleteSafetySettingsDialog.xaml

@@ -19,12 +19,12 @@
         <StackPanel Grid.Row="1"  Orientation="Horizontal" HorizontalAlignment="Right" >
             <Button Style="{StaticResource Btn.cta}" Width="80" Height="32" Margin="0,0,16,16" Command="{Binding RemoveSecuritySettingsCommand}">
                 <Border>
-                    <TextBlock Text="Remove" ></TextBlock>
+                    <TextBlock Text="{Binding T_YES}" ></TextBlock>
                 </Border>
             </Button>
             <Button Style="{StaticResource btn.ghost}" Width="80" Height="32" Margin="0,0,16,16" Command="{Binding CancelCommand}">
                 <Border>
-                    <TextBlock Text="Cancel" ></TextBlock>
+                    <TextBlock Text="{Binding T_No}" ></TextBlock>
                 </Border>
             </Button>
         </StackPanel>

+ 7 - 7
PDF Office/Views/Dialog/ToolsDialogs/SaftyDialogs/SetPasswordDialog.xaml

@@ -225,7 +225,7 @@
             </Setter>
         </Style>
     </UserControl.Resources>
-    <cus:DialogContent Header="Set Pasword">
+    <cus:DialogContent Header="{Binding T_Title}">
         <cus:DialogContent.Content>
             <Grid Margin="16,0,16,0" Width="400">
                 <Grid.RowDefinitions>
@@ -235,7 +235,7 @@
                 </Grid.RowDefinitions>
                 <StackPanel Orientation="Vertical">
                     <CheckBox Name="OpenPasswordChk" IsChecked="{Binding NeedOpenPassword, Mode=TwoWay}" Command="{Binding SetOpenPasswordCommand}" CommandParameter="{Binding RelativeSource={RelativeSource Self}}">
-                        <TextBlock Text="Document Open Password" FontFamily="Segoe UI" FontSize="14"></TextBlock>
+                        <TextBlock Text="{Binding T_OpenTitle}" FontFamily="Segoe UI" FontSize="14"></TextBlock>
                     </CheckBox>
                     <Grid  Margin="0,8,0,16"  IsEnabled="{Binding ElementName=OpenPasswordChk, Path=IsChecked}"  >
                         <Grid.ColumnDefinitions>
@@ -252,7 +252,7 @@
                 </StackPanel>
                 <StackPanel Orientation="Vertical" Grid.Row="1" Margin="0,16,0,0">
                     <CheckBox Name="PermissionsPasswordChk" IsChecked="{Binding NeedPermissionsPassword, Mode=TwoWay}" Command="{Binding SetPermissionsPasswordCommand}" CommandParameter="{Binding RelativeSource = {RelativeSource Self}}">
-                        <TextBlock Text="Permissions" FontFamily="Segoe UI" FontSize="14"></TextBlock>
+                        <TextBlock Text="{Binding T_PermissionTitle}" FontFamily="Segoe UI" FontSize="14"></TextBlock>
                     </CheckBox>
                     <Grid Height="32" Margin="0,8,0,16"  IsEnabled="{Binding ElementName=PermissionsPasswordChk, Path=IsChecked}"  >
                         <Grid.ColumnDefinitions>
@@ -268,10 +268,10 @@
                 </StackPanel  >
                 <StackPanel Grid.Row="2" Orientation="Vertical" IsEnabled="{Binding ElementName=PermissionsPasswordChk, Path=IsChecked}" >
                     <CheckBox Margin="0,8,0,0" IsChecked="{Binding IsRestrictPrinting,Mode=TwoWay}" Command="{Binding SetRestrictCommand}"  CommandParameter="{Binding RelativeSource = {RelativeSource Self}}" Tag="Printing">
-                        <TextBlock Text="Restrict document printing"></TextBlock>
+                        <TextBlock Text="{Binding T_RestrictPrinting}"></TextBlock>
                     </CheckBox>
                     <CheckBox  Margin="0,8,0,0"  IsChecked="{Binding IsRestrictCopying}"  Command="{Binding SetRestrictCommand}"  CommandParameter="{Binding RelativeSource = {RelativeSource Self}}" Tag="Copying">
-                        <TextBlock Text="Restrict content copying"></TextBlock>
+                        <TextBlock Text="{Binding T_RestrictCopying}"></TextBlock>
                     </CheckBox>
                 </StackPanel>
             </Grid>
@@ -282,10 +282,10 @@
                     <TextBlock Text="Batch"></TextBlock>
                 </Button>
                 <Button Style="{StaticResource Btn.cta}"  Width="80"  Height="32"  Margin="0,0,96,0"  HorizontalAlignment="Right" Command="{Binding EncryptCommand}"  IsEnabled="{Binding EnableConfirm, Mode=TwoWay}" RenderTransformOrigin="1.5,1192508.3">
-                    <TextBlock Text="Encrypt"></TextBlock>
+                    <TextBlock Text="{Binding T_Yes}"></TextBlock>
                 </Button>
                 <Button Style="{StaticResource btn.ghost}"  Width="80" Height="32" HorizontalAlignment="Right" Command="{Binding CancelEncryptCommand}">
-                    <TextBlock Text="Cancel"></TextBlock>
+                    <TextBlock Text="{Binding T_No}"></TextBlock>
                 </Button>
             </Grid>
         </cus:DialogContent.BottmBar>

+ 34 - 19
PDF Office/Views/HomePanel/RecentFiles/DocItemControl.xaml

@@ -20,20 +20,20 @@
         </Grid.RowDefinitions>
         <Grid Height="165" Margin="51,16">
             <Border
-            BorderBrush="{StaticResource color.sys.layout.divider}"
-            BorderThickness="1"
-                VerticalAlignment="Center"
                 HorizontalAlignment="Center"
-            CornerRadius="{StaticResource border-radius.8}">
+                VerticalAlignment="Center"
+                BorderBrush="{StaticResource color.sys.layout.divider}"
+                BorderThickness="1"
+                CornerRadius="{StaticResource border-radius.8}">
                 <Grid>
                     <Border
-                    Name="BorderImage"
-                    Background="White"
-                    CornerRadius="{StaticResource border-radius.8}" />
+                        Name="BorderImage"
+                        Background="White"
+                        CornerRadius="{StaticResource border-radius.8}" />
                     <Image
-                    Name="CoverImage"
-                    RenderOptions.BitmapScalingMode="HighQuality"
-                    UseLayoutRounding="True">
+                        Name="CoverImage"
+                        RenderOptions.BitmapScalingMode="HighQuality"
+                        UseLayoutRounding="True">
                         <Image.OpacityMask>
                             <VisualBrush Visual="{Binding ElementName=BorderImage}" />
                         </Image.OpacityMask>
@@ -41,18 +41,33 @@
                 </Grid>
             </Border>
         </Grid>
-        <TextBlock
+        <StackPanel
             Grid.Row="1"
-            MaxWidth="226"
-            MaxHeight="44"
             Margin="0,0,0,8"
             HorizontalAlignment="Center"
-            VerticalAlignment="Top"
-            FontSize="14"
-            Text="{Binding FileName}"
-            TextTrimming="CharacterEllipsis"
-            TextWrapping="Wrap"
-            ToolTip="{Binding FileName}" />
+            VerticalAlignment="Center"
+            Orientation="Horizontal">
+            <Rectangle
+                Name="RecNewMark"
+                Width="4"
+                Height="4"
+                Margin="4,0"
+                Fill="{StaticResource color.btn.cta.bg.norm}"
+                RadiusX="4"
+                RadiusY="4"
+                Visibility="Collapsed" />
+            <TextBlock
+                Grid.Row="1"
+                MaxWidth="226"
+                MaxHeight="44"
+                HorizontalAlignment="Center"
+                VerticalAlignment="Top"
+                FontSize="14"
+                Text="{Binding FileName}"
+                TextTrimming="CharacterEllipsis"
+                TextWrapping="Wrap"
+                ToolTip="{Binding FileName}" />
+        </StackPanel>
     </Grid>
 
 </UserControl>

+ 6 - 0
PDF Office/Views/HomePanel/RecentFiles/DocItemControl.xaml.cs

@@ -36,6 +36,12 @@ namespace PDF_Office.Views.HomePanel.RecentFiles
             {
                 var data = grid.DataContext as OpenFileInfo;
                 if (data == null) return;
+
+                if (data.IsGuidPDF && App.IsGuidPDFUpdated)
+                {
+                    RecNewMark.Visibility = Visibility.Visible;
+                }
+
                 if (!string.IsNullOrEmpty(data.ThumbImgPath))
                     CoverImage.Source = ToolMethod.GetFileThumbImg(data.ThumbImgPath);
                 else

+ 19 - 9
PDF Office/Views/HomePanel/RecentFiles/DocItemListViewControl.xaml

@@ -62,15 +62,25 @@
                         UseLayoutRounding="True" />
                 </Border>
                 <StackPanel Grid.Column="1" Margin="8,8,0,8">
-                    <TextBlock
-                        x:Name="FileName"
-                        Grid.Column="1"
-                        HorizontalAlignment="Stretch"
-                        VerticalAlignment="Center"
-                        FontSize="14"
-                        Foreground="{StaticResource color.sys.text.neutral.lv1}"
-                        Text="{Binding FileName}"
-                        TextTrimming="WordEllipsis" />
+                    <StackPanel Grid.Column="1" Orientation="Horizontal">
+                        <Rectangle
+                            Name="RecNewMark"
+                            Width="4"
+                            Height="4"
+                            Margin="4,0"
+                            Fill="{StaticResource color.btn.cta.bg.norm}"
+                            RadiusX="4"
+                            RadiusY="4"
+                            Visibility="Collapsed" />
+                        <TextBlock
+                            x:Name="FileName"
+                            HorizontalAlignment="Stretch"
+                            VerticalAlignment="Center"
+                            FontSize="14"
+                            Foreground="{StaticResource color.sys.text.neutral.lv1}"
+                            Text="{Binding FileName}"
+                            TextTrimming="WordEllipsis" />
+                    </StackPanel>
                     <TextBlock
                         Margin="0,4,0,0"
                         FontSize="14"

+ 5 - 0
PDF Office/Views/HomePanel/RecentFiles/DocItemListViewControl.xaml.cs

@@ -104,6 +104,11 @@ namespace PDF_Office.Views.HomePanel.RecentFiles
                 var data = grid.DataContext as OpenFileInfo;
                 if (data == null) return;
 
+                //显示新文档符号
+                if (data.IsGuidPDF&& App.IsGuidPDFUpdated)
+                {
+                    RecNewMark.Visibility = Visibility.Visible;
+                }
 
                 if (File.Exists(data.ThumbImgPath))
                 {

+ 9 - 8
PDF Office/Views/PageEdit/PageEditContent.xaml

@@ -23,6 +23,7 @@
     FocusVisualStyle="{x:Null}"
     IsVisibleChanged="PageEdit_IsVisibleChanged"
     SizeChanged="PageEdit_SizeChanged"
+    xmlns:mainpage="clr-namespace:PDF_Office.Strings.MainPage"
     mc:Ignorable="d">
     <UserControl.Resources>
         <ResourceDictionary>
@@ -110,22 +111,22 @@
                     Command="{Binding ReplaceCommand}"
                     Header="替换页面"
                     Visibility="Collapsed" />
-                <MenuItem Command="{Binding DeleteCommand}" Header="删除页面" />
-                <MenuItem Command="{Binding RightRotateCommand}" Header="顺时针旋转页面" />
-                <MenuItem Command="{Binding LeftRotateCommand}" Header="逆时针旋转页面" />
-                <MenuItem Command="{Binding CopyCommand}" Header="复制" />
-                <MenuItem Command="{Binding CutCommand}" Header="剪切" />
-                <MenuItem Command="{Binding PasteCommand}" Header="粘贴" />
+                <MenuItem Command="{Binding DeleteCommand}" Header="{x:Static mainpage:MainPage.PageEdit_MenuDelete}" />
+                <MenuItem Command="{Binding RightRotateCommand}" Header="{x:Static mainpage:MainPage.PageEdit_MenuRotateClockwise}" />
+                <MenuItem Command="{Binding LeftRotateCommand}" Header="{x:Static mainpage:MainPage.PageEdit_MenuRotateCounterclockwise}" />
+                <MenuItem Command="{Binding CopyCommand}" Header="{x:Static mainpage:MainPage.PageEdit_MenuCopy}" />
+                <MenuItem Command="{Binding CutCommand}" Header="{x:Static mainpage:MainPage.PageEdit_MenuCut}" />
+                <MenuItem Command="{Binding PasteCommand}" Header="{x:Static mainpage:MainPage.PageEdit_MenuPaste}" />
                 <MenuItem
                     Command="{Binding ShowPageSizeCommand}"
-                    Header="显示页面大小"
+                    Header="{x:Static mainpage:MainPage.PageEdit_MenuShowPageSize}"
                     Visibility="{Binding Source={x:Reference Name=MenuHidePageSize}, Path=Visibility, Converter={StaticResource UnVisibleConvert}}" />
                 <MenuItem
                     Name="MenuHidePageSize"
                     Command="{Binding ShowPageSizeCommand}"
                     Header="隐藏页面大小"
                     Visibility="{Binding HasShowPageSize}" />
-                <MenuItem Command="{Binding PrintCommand}" Header="打印页面" />
+                <MenuItem Command="{Binding PrintCommand}" Header="{x:Static mainpage:MainPage.PageEdit_MenuPrint}" />
             </ContextMenu>
 
             <Style BasedOn="{StaticResource subToolBar}" TargetType="{x:Type Button}">

+ 1 - 1
PDF Office/Views/PropertyPanel/AnnotPanel/FreehandAnnotProperty.xaml

@@ -9,7 +9,7 @@
               xmlns:i="http://schemas.microsoft.com/xaml/behaviors"
              xmlns:prism="http://prismlibrary.com/"             
              xmlns:Convert="clr-namespace:PDF_Office.DataConvert"
-              xmlns:EraseThickConvert="clr-namespace:PDF_Office.ViewModels.PropertyPanel.AnnotPanel"
+              xmlns:EraseThickConvert="clr-namespace:PDF_Office.ViewModels.PropertyPanel.AnnotPanel" d:DataContext="{d:DesignInstance Type=EraseThickConvert:FreehandAnnotPropertyViewModel}"
              mc:Ignorable="d" 
              d:DesignHeight="450" d:DesignWidth="800">
     <UserControl.Resources>

+ 4 - 4
PDF Office/Views/PropertyPanel/AnnotPanel/FreetextAnnotProperty.xaml

@@ -10,7 +10,7 @@
              xmlns:prism="http://prismlibrary.com/"             
              prism:ViewModelLocator.AutoWireViewModel="True"
              xmlns:Convert="clr-namespace:PDF_Office.DataConvert"
-             xmlns:cus="clr-namespace:PDF_Office.CustomControl"
+             xmlns:cus="clr-namespace:PDF_Office.CustomControl" xmlns:annotpanel="clr-namespace:PDF_Office.ViewModels.PropertyPanel.AnnotPanel" d:DataContext="{d:DesignInstance Type=annotpanel:FreetextAnnotPropertyViewModel}"
              mc:Ignorable="d"
              d:DesignHeight="850" d:DesignWidth="800">
     <UserControl.Resources>
@@ -53,7 +53,7 @@
     </UserControl.Resources>
     <Grid Background="#F3F3F3">
         <StackPanel>
-            <TextBlock Name="AnnotTypeTitle" FontFamily="Segoe UI Semibold" FontWeight="SemiBold" FontSize="18" LineHeight="24" HorizontalAlignment="Left" Margin="10,8,0,0">Freetext</TextBlock>
+            <TextBlock Name="AnnotTypeTitle" FontFamily="Segoe UI Semibold" FontWeight="SemiBold" FontSize="18" LineHeight="24" HorizontalAlignment="Left" Margin="10,8,0,0" Text="{Binding T_Title}"/>
             <Border Width="228" Height="100" BorderThickness="1" CornerRadius="2" BorderBrush="#DDDDDD" Background="White" Margin="0,8,0,0"
                      Visibility="{Binding BasicVm.IsMultiSelected,Converter={StaticResource InvertBoolToVisibleConvert}}"
                     >
@@ -132,7 +132,7 @@
                         Margin="0,0,0,10" FontWeight="Normal" 
                         Foreground="{StaticResource color.sys.text.neutral.lv2}"
                         Style="{StaticResource PropertyHeaderLv2}"
-                        Text="文本" />
+                        Text="{Binding T_Font}" />
 
                 <StackPanel>
                     <CompositeControl:CustomComboControl
@@ -384,7 +384,7 @@
                     <RowDefinition Height="auto"/>
                     <RowDefinition/>
                 </Grid.RowDefinitions>
-                <TextBlock Text="Fill" FontWeight="Normal" Foreground="{StaticResource color.sys.text.neutral.lv2}" VerticalAlignment="Center"/>
+                <TextBlock Text="{Binding T_Fill}" FontWeight="Normal" Foreground="{StaticResource color.sys.text.neutral.lv2}" VerticalAlignment="Center"/>
                 <CompositeControl:SlidContent x:Name="layerThick" HorizontalAlignment="Right"
                                               InitValue="{Binding BasicVm.FillOpacity,Mode=OneWay}"
                     Visibility="{Binding BasicVm.IsMultiSelected,Converter={StaticResource InvertBoolToVisibleConvert}}"                           

+ 3 - 4
PDF Office/Views/PropertyPanel/AnnotPanel/LinkAnnotProperty.xaml

@@ -40,9 +40,8 @@
                 FontFamily="Segoe UI"
                 FontSize="14"
                 FontWeight="Bold"
-                LineHeight="24">
-                Link
-            </TextBlock>
+                LineHeight="24"
+                Text="{Binding T_Title}"/>
             <StackPanel
                 Name="ToggleButtonTab"
                 Margin="12,0,0,0"
@@ -177,7 +176,7 @@
                         FontWeight="Bold"
                         Foreground="{StaticResource color.sys.text.neutral.lv2}"
                         LineHeight="20"
-                        Text="Page" />
+                        Text="{Binding T_Page}" />
                     <StackPanel Orientation="Horizontal">
                         <CustomControl:TextBoxWithTip
                             x:Name="PageNumText"

+ 2 - 1
PDF Office/Views/PropertyPanel/AnnotPanel/TextAnnotProperty.xaml

@@ -12,6 +12,7 @@
              xmlns:AnnotPanel="clr-namespace:PDF_Office.ViewModels.PropertyPanel.AnnotPanel"
              d:DataContext="{d:DesignInstance Type=AnnotPanel:TextAnnotPropertyViewModel}"
              xmlns:Convert="clr-namespace:PDF_Office.ViewModels.PropertyPanel.AnnotPanel"
+             xmlns:mainpage="clr-namespace:PDF_Office.Strings.MainPage"
              xmlns:dataconvert="clr-namespace:PDF_Office.DataConvert"
              mc:Ignorable="d" 
              d:DesignHeight="450" d:DesignWidth="800">
@@ -54,7 +55,7 @@
                     <Rectangle Grid.Row="1" Grid.Column="1" VerticalAlignment="Bottom"  Height="2" StrokeThickness="2" HorizontalAlignment="Stretch" 
                                Stroke="{Binding BasicVm.FontColor}" Visibility="{Binding BasicVm.AnnotType,Converter={StaticResource AnnotArgsTypeConverter},ConverterParameter=AnnotUnderline}" />
 
-                    <TextBlock Name="SampleText" Padding="4,2,4,2" Grid.Row="1" Grid.Column="1" Text="Sample" HorizontalAlignment="Center" VerticalAlignment="Center" FontWeight="Bold" FontFamily="Segoe UI" FontSize="18" >
+                    <TextBlock Name="SampleText" Padding="4,2,4,2" Grid.Row="1" Grid.Column="1" Text="{x:Static mainpage:MainPage.Sample}" HorizontalAlignment="Center" VerticalAlignment="Center" FontWeight="Bold" FontFamily="Segoe UI" FontSize="18" >
                     </TextBlock>
                 </Grid>
             </Border>

+ 3 - 3
PDF Office/Views/Tools/ToolsBarContent.xaml

@@ -4,7 +4,7 @@
     xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
     xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
     xmlns:prism="http://prismlibrary.com/"
-    xmlns:tools="clr-namespace:PDF_Office.ViewModels.Tools" xmlns:convert="clr-namespace:PDF_Office.DataConvert"
+    xmlns:tools="clr-namespace:PDF_Office.ViewModels.Tools" xmlns:convert="clr-namespace:PDF_Office.DataConvert" 
     prism:ViewModelLocator.AutoWireViewModel="True">
     <UserControl.Resources>
         <convert:InvertBoolConvert x:Key="InvertBoolConvert" />
@@ -59,8 +59,8 @@
                         </StackPanel>
                         <Button.ContextMenu>
                             <ContextMenu Name="SecurityMenuMore" Placement="Bottom">
-                                <MenuItem Header="Set Passwords" Command="{Binding SetPasswordCommand}"/>
-                                <MenuItem Header="Remove Security" Command="{Binding CancelPasswordCommand}" />
+                                <MenuItem Header="{Binding T_SetPassWord}" Command="{Binding SetPasswordCommand}"/>
+                                <MenuItem Header="{Binding T_RemovePassword}" Command="{Binding CancelPasswordCommand}" />
                             </ContextMenu>
                         </Button.ContextMenu>
                     </Button>

+ 3 - 1
PDFSettings/RecentOpenFiles.cs

@@ -7,7 +7,7 @@ namespace PDFSettings.Settings
 {
     public class RecentOpenFiles : List<OpenFileInfo>
     {
-
+        
     }
 
     public class OpenFileInfo
@@ -32,5 +32,7 @@ namespace PDFSettings.Settings
 
         //用于记录显示的Color
         public Color LastFillBrushColor = Brushes.White.Color;
+
+        public bool IsGuidPDF { get; set; } = false;
     }
 }