diff --git a/CMakeLists.txt b/CMakeLists.txt
index b5fd2a7..609f78e 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -254,6 +254,25 @@ if (WIN32)
message (FATAL_ERROR "Failed to render Inno Setup script via MetaGlot (exit code: ${METAGLOT_INNO_RESULT}).")
endif ()
configure_file (${SCWPIC_INNO_OUTPUT_DIR}/scwpic.iss.in ${SCWPIC_INNO_OUTPUT_DIR}/scwpic.iss @ONLY)
+
+ # Setup MSIX metadata. NOTE: the package cannot be built yet: the logo assets
+ # referenced by the manifest are not provided (marked with TODO comments).
+ set (SCWPIC_MSIX_OUTPUT_DIR ${CMAKE_CURRENT_BINARY_DIR}/msix-metadata)
+ execute_process (
+ COMMAND ${UV_EXECUTABLE} tool run metaglot render msix
+ --manifest ${CMAKE_SOURCE_DIR}/dist/AppxManifest.xml.in.toml
+ --po ${CMAKE_SOURCE_DIR}/locales/msix/*.po
+ --manifest-template ${CMAKE_SOURCE_DIR}/dist/AppxManifest.xml.in.liquid
+ --resources-template ${CMAKE_SOURCE_DIR}/dist/Resources.resjson.liquid
+ --manifest-path AppxManifest.xml.in
+ --resources-path "Strings/{{ lang }}/Resources.resjson"
+ --output ${SCWPIC_MSIX_OUTPUT_DIR}
+ RESULT_VARIABLE METAGLOT_MSIX_RESULT
+ )
+ if (NOT METAGLOT_MSIX_RESULT EQUAL 0)
+ message (FATAL_ERROR "Failed to render MSIX metadata via MetaGlot (exit code: ${METAGLOT_MSIX_RESULT}).")
+ endif ()
+ configure_file (${SCWPIC_MSIX_OUTPUT_DIR}/AppxManifest.xml.in ${SCWPIC_MSIX_OUTPUT_DIR}/AppxManifest.xml @ONLY)
elseif (APPLE)
# Include icon to project
set_source_files_properties(dist/sarasacw-picture.icns PROPERTIES
diff --git a/dist/AppxManifest.xml.in.liquid b/dist/AppxManifest.xml.in.liquid
new file mode 100644
index 0000000..98a9999
--- /dev/null
+++ b/dist/AppxManifest.xml.in.liquid
@@ -0,0 +1,337 @@
+
+
+
+
+
+
+ ms-resource:AppDisplayName
+ ms-resource:PublisherDisplayName
+
+ Assets\Square44x44Logo.png
+
+
+
+{% for lang in langs %}
+
+{% endfor %}
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ ms-resource:FileTypeJpegDisplayName
+
+ Assets\FileAssoc\jpg.png
+
+ .jfif
+ .jpeg
+ .jpg
+
+
+
+
+
+ ms-resource:FileTypeGifDisplayName
+
+ Assets\FileAssoc\gif.png
+
+ .gif
+
+
+
+
+
+ ms-resource:FileTypePngDisplayName
+
+ Assets\FileAssoc\png.png
+
+ .apng
+ .png
+
+
+
+
+
+ ms-resource:FileTypeSvgDisplayName
+
+ Assets\FileAssoc\png.png
+
+ .svg
+
+
+
+
+
+ ms-resource:FileTypeWebpDisplayName
+
+ Assets\FileAssoc\png.png
+
+ .webp
+
+
+
+
+
+ ms-resource:FileTypeAvifDisplayName
+
+ Assets\FileAssoc\png.png
+
+ .avif
+
+
+
+
+
+ ms-resource:FileTypeIcoDisplayName
+
+ Assets\FileAssoc\png.png
+
+ .ico
+
+
+
+
+
+ ms-resource:FileTypeIcnsDisplayName
+
+ Assets\FileAssoc\png.png
+
+ .icns
+
+
+
+
+
+ ms-resource:FileTypePsdDisplayName
+
+ Assets\FileAssoc\bmp.png
+
+ .pdd
+ .psb
+ .psd
+ .psdt
+
+
+
+
+
+ ms-resource:FileTypeKraDisplayName
+
+ Assets\FileAssoc\bmp.png
+
+ .kra
+
+
+
+
+
+ ms-resource:FileTypeXcfDisplayName
+
+ Assets\FileAssoc\bmp.png
+
+ .xcf
+
+
+
+
+
+ ms-resource:FileTypeTgaDisplayName
+
+ Assets\FileAssoc\bmp.png
+
+ .tga
+
+
+
+
+
+ ms-resource:FileTypeTifDisplayName
+
+ Assets\FileAssoc\jpg.png
+
+ .tif
+ .tiff
+
+
+
+
+
+ ms-resource:FileTypeBmpDisplayName
+
+ Assets\FileAssoc\bmp.png
+
+ .bmp
+
+
+
+
+
+ ms-resource:FileTypeWbmpDisplayName
+
+ Assets\FileAssoc\bmp.png
+
+ .wbmp
+
+
+
+
+
+ ms-resource:FileTypeDdsDisplayName
+
+ Assets\FileAssoc\bmp.png
+
+ .dds
+
+
+
+
+
+ ms-resource:FileTypeHdrDisplayName
+
+ Assets\FileAssoc\jpg.png
+
+ .exr
+ .hdr
+
+
+
+
+
+ ms-resource:FileTypeIffDisplayName
+
+ Assets\FileAssoc\jpg.png
+
+ .iff
+
+
+
+
+
+ ms-resource:FileTypePicDisplayName
+
+ Assets\FileAssoc\jpg.png
+
+ .pic
+
+
+
+
+
+ ms-resource:FileTypePcxDisplayName
+
+ Assets\FileAssoc\jpg.png
+
+ .pcx
+
+
+
+
+
+ ms-resource:FileTypeQoiDisplayName
+
+ Assets\FileAssoc\png.png
+
+ .qoi
+
+
+
+
+
+ ms-resource:FileTypeRasDisplayName
+
+ Assets\FileAssoc\jpg.png
+
+ .ras
+ .sun
+
+
+
+
+
+ ms-resource:FileTypeOraDisplayName
+
+ Assets\FileAssoc\bmp.png
+
+ .ora
+
+
+
+
+
+ ms-resource:FileTypeAniDisplayName
+
+ Assets\FileAssoc\gif.png
+
+ .ani
+
+
+
+
+
+ ms-resource:FileTypePfmDisplayName
+
+ Assets\FileAssoc\jpg.png
+
+ .pfm
+ .phm
+
+
+
+
+
+ ms-resource:FileTypeRgbDisplayName
+
+ Assets\FileAssoc\jpg.png
+
+ .bw
+ .rgb
+ .rgba
+ .sgi
+
+
+
+
+
+ ms-resource:FileTypePxrDisplayName
+
+ Assets\FileAssoc\jpg.png
+
+ .pxr
+
+
+
+
+
+ ms-resource:FileTypeSctDisplayName
+
+ Assets\FileAssoc\jpg.png
+
+ .sct
+
+
+
+
+
+
+
diff --git a/dist/AppxManifest.xml.in.toml b/dist/AppxManifest.xml.in.toml
new file mode 100644
index 0000000..f801761
--- /dev/null
+++ b/dist/AppxManifest.xml.in.toml
@@ -0,0 +1,126 @@
+version = 1
+source_language = "en_US"
+
+[strings.app_display_name]
+msgid = "Pineapple Pictures"
+comment = "Display name of the application, referenced as ms-resource:AppDisplayName."
+
+[strings.publisher_display_name]
+msgid = "Chestnut Software"
+comment = "Publisher display name, referenced as ms-resource:PublisherDisplayName."
+
+[strings.app_description]
+msgid = "Pineapple Pictures - Image Viewer"
+comment = "Application description, referenced as ms-resource:AppDescription."
+
+[strings.file_type_jpeg]
+msgid = "JPEG Image"
+comment = "Display name of the JPEG file type association (jpg, jpeg, jfif), referenced as ms-resource:FileTypeJpegDisplayName."
+
+[strings.file_type_gif]
+msgid = "GIF Animation Image"
+comment = "Display name of the GIF file type association, referenced as ms-resource:FileTypeGifDisplayName."
+
+[strings.file_type_png]
+msgid = "PNG Image"
+comment = "Display name of the PNG file type association (png, apng), referenced as ms-resource:FileTypePngDisplayName."
+
+[strings.file_type_svg]
+msgid = "Scalable Vector Graphics"
+comment = "Display name of the SVG file type association, referenced as ms-resource:FileTypeSvgDisplayName."
+
+[strings.file_type_webp]
+msgid = "WebP Image"
+comment = "Display name of the WebP file type association, referenced as ms-resource:FileTypeWebpDisplayName."
+
+[strings.file_type_avif]
+msgid = "AV1 Image File"
+comment = "Display name of the AVIF file type association, referenced as ms-resource:FileTypeAvifDisplayName."
+
+[strings.file_type_ico]
+msgid = "Windows Icon Image"
+comment = "Display name of the ICO file type association, referenced as ms-resource:FileTypeIcoDisplayName."
+
+[strings.file_type_icns]
+msgid = "Apple Icon Image"
+comment = "Display name of the ICNS file type association, referenced as ms-resource:FileTypeIcnsDisplayName."
+
+[strings.file_type_psd]
+msgid = "Photoshop Document"
+comment = "Display name of the Photoshop file type association (psd, psb, pdd, psdt), referenced as ms-resource:FileTypePsdDisplayName."
+
+[strings.file_type_kra]
+msgid = "Krita Document"
+comment = "Display name of the Krita file type association, referenced as ms-resource:FileTypeKraDisplayName."
+
+[strings.file_type_xcf]
+msgid = "GIMP Document"
+comment = "Display name of the GIMP file type association, referenced as ms-resource:FileTypeXcfDisplayName."
+
+[strings.file_type_tga]
+msgid = "TARGA Image"
+comment = "Display name of the TARGA file type association, referenced as ms-resource:FileTypeTgaDisplayName."
+
+[strings.file_type_tif]
+msgid = "Tagged Image File Format"
+comment = "Display name of the TIFF file type association (tif, tiff), referenced as ms-resource:FileTypeTifDisplayName."
+
+[strings.file_type_bmp]
+msgid = "Bitmap"
+comment = "Display name of the BMP file type association, referenced as ms-resource:FileTypeBmpDisplayName."
+
+[strings.file_type_wbmp]
+msgid = "Wireless Bitmap"
+comment = "Display name of the WBMP file type association, referenced as ms-resource:FileTypeWbmpDisplayName."
+
+[strings.file_type_dds]
+msgid = "DirectDraw Surface"
+comment = "Display name of the DDS file type association, referenced as ms-resource:FileTypeDdsDisplayName."
+
+[strings.file_type_hdr]
+msgid = "High Dynamic Range Image"
+comment = "Display name of the HDR file type association (hdr, exr), referenced as ms-resource:FileTypeHdrDisplayName."
+
+[strings.file_type_iff]
+msgid = "Interchange File Format"
+comment = "Display name of the IFF file type association, referenced as ms-resource:FileTypeIffDisplayName."
+
+[strings.file_type_pic]
+msgid = "Softimage Picture"
+comment = "Display name of the Softimage PIC file type association, referenced as ms-resource:FileTypePicDisplayName."
+
+[strings.file_type_pcx]
+msgid = "PiCture eXchange PC Paintbrush Image"
+comment = "Display name of the PCX file type association, referenced as ms-resource:FileTypePcxDisplayName."
+
+[strings.file_type_qoi]
+msgid = "Quite OK Image"
+comment = "Display name of the QOI file type association, referenced as ms-resource:FileTypeQoiDisplayName."
+
+[strings.file_type_ras]
+msgid = "Sun Raster Image"
+comment = "Display name of the Sun Raster file type association (ras, sun), referenced as ms-resource:FileTypeRasDisplayName."
+
+[strings.file_type_ora]
+msgid = "OpenRaster Image"
+comment = "Display name of the OpenRaster file type association, referenced as ms-resource:FileTypeOraDisplayName."
+
+[strings.file_type_ani]
+msgid = "Animated Cursor"
+comment = "Display name of the ANI file type association, referenced as ms-resource:FileTypeAniDisplayName."
+
+[strings.file_type_pfm]
+msgid = "Portable Float Map"
+comment = "Display name of the Portable Float Map file type association (pfm, phm), referenced as ms-resource:FileTypePfmDisplayName."
+
+[strings.file_type_rgb]
+msgid = "Silicon Graphics Image"
+comment = "Display name of the Silicon Graphics file type association (rgb, rgba, bw, sgi), referenced as ms-resource:FileTypeRgbDisplayName."
+
+[strings.file_type_pxr]
+msgid = "Pixar Raster Image"
+comment = "Display name of the Pixar file type association, referenced as ms-resource:FileTypePxrDisplayName."
+
+[strings.file_type_sct]
+msgid = "Scitex Continuous Tone"
+comment = "Display name of the Scitex CT file type association, referenced as ms-resource:FileTypeSctDisplayName."
diff --git a/dist/Resources.resjson.liquid b/dist/Resources.resjson.liquid
new file mode 100644
index 0000000..0886107
--- /dev/null
+++ b/dist/Resources.resjson.liquid
@@ -0,0 +1,33 @@
+{
+ "AppDisplayName": "{{ strings.app_display_name | json_escape }}",
+ "PublisherDisplayName": "{{ strings.publisher_display_name | json_escape }}",
+ "AppDescription": "{{ strings.app_description | json_escape }}",
+ "FileTypeJpegDisplayName": "{{ strings.file_type_jpeg | json_escape }}",
+ "FileTypeGifDisplayName": "{{ strings.file_type_gif | json_escape }}",
+ "FileTypePngDisplayName": "{{ strings.file_type_png | json_escape }}",
+ "FileTypeSvgDisplayName": "{{ strings.file_type_svg | json_escape }}",
+ "FileTypeWebpDisplayName": "{{ strings.file_type_webp | json_escape }}",
+ "FileTypeAvifDisplayName": "{{ strings.file_type_avif | json_escape }}",
+ "FileTypeIcoDisplayName": "{{ strings.file_type_ico | json_escape }}",
+ "FileTypeIcnsDisplayName": "{{ strings.file_type_icns | json_escape }}",
+ "FileTypePsdDisplayName": "{{ strings.file_type_psd | json_escape }}",
+ "FileTypeKraDisplayName": "{{ strings.file_type_kra | json_escape }}",
+ "FileTypeXcfDisplayName": "{{ strings.file_type_xcf | json_escape }}",
+ "FileTypeTgaDisplayName": "{{ strings.file_type_tga | json_escape }}",
+ "FileTypeTifDisplayName": "{{ strings.file_type_tif | json_escape }}",
+ "FileTypeBmpDisplayName": "{{ strings.file_type_bmp | json_escape }}",
+ "FileTypeWbmpDisplayName": "{{ strings.file_type_wbmp | json_escape }}",
+ "FileTypeDdsDisplayName": "{{ strings.file_type_dds | json_escape }}",
+ "FileTypeHdrDisplayName": "{{ strings.file_type_hdr | json_escape }}",
+ "FileTypeIffDisplayName": "{{ strings.file_type_iff | json_escape }}",
+ "FileTypePicDisplayName": "{{ strings.file_type_pic | json_escape }}",
+ "FileTypePcxDisplayName": "{{ strings.file_type_pcx | json_escape }}",
+ "FileTypeQoiDisplayName": "{{ strings.file_type_qoi | json_escape }}",
+ "FileTypeRasDisplayName": "{{ strings.file_type_ras | json_escape }}",
+ "FileTypeOraDisplayName": "{{ strings.file_type_ora | json_escape }}",
+ "FileTypeAniDisplayName": "{{ strings.file_type_ani | json_escape }}",
+ "FileTypePfmDisplayName": "{{ strings.file_type_pfm | json_escape }}",
+ "FileTypeRgbDisplayName": "{{ strings.file_type_rgb | json_escape }}",
+ "FileTypePxrDisplayName": "{{ strings.file_type_pxr | json_escape }}",
+ "FileTypeSctDisplayName": "{{ strings.file_type_sct | json_escape }}"
+}
diff --git a/dist/msix/generic.svg b/dist/msix/generic.svg
deleted file mode 100644
index 6bbc099..0000000
--- a/dist/msix/generic.svg
+++ /dev/null
@@ -1 +0,0 @@
-
\ No newline at end of file
diff --git a/dist/msix/gif.svg b/dist/msix/gif.svg
deleted file mode 100644
index 9d24948..0000000
--- a/dist/msix/gif.svg
+++ /dev/null
@@ -1,67 +0,0 @@
-
-
-
diff --git a/dist/msix/jpeg.svg b/dist/msix/jpeg.svg
deleted file mode 100644
index 3f6e0f5..0000000
--- a/dist/msix/jpeg.svg
+++ /dev/null
@@ -1,132 +0,0 @@
-
-
diff --git a/dist/msix/png.svg b/dist/msix/png.svg
deleted file mode 100644
index cb7ed0e..0000000
--- a/dist/msix/png.svg
+++ /dev/null
@@ -1,215 +0,0 @@
-
-
diff --git a/dist/msix/ppic.msix.toml b/dist/msix/ppic.msix.toml
deleted file mode 100644
index 803f8e4..0000000
--- a/dist/msix/ppic.msix.toml
+++ /dev/null
@@ -1,50 +0,0 @@
-[package]
-name = "ChestnutSoftware.PineapplePictures"
-version = "1.6.0.0"
-
-[display]
-name = "Pineapple Pictures"
-publisherName = "Chestnut Software"
-
-[display.zh-CN]
-name = "菠萝看图"
-
-[application]
-id = "PineapplePictures"
-executable = "ppic.exe"
-
-[icon]
-source = "../../assets/icons/app-icon.svg"
-
-[[fileAssociations]]
-name = "jpgimages"
-extensions = ["jpg", "jfif", "jpeg"]
-logo = "jpeg.svg"
-
-[[fileAssociations]]
-name = "pngimages"
-extensions = ["png"]
-logo = "png.svg"
-
-[[fileAssociations]]
-name = "gifimages"
-extensions = ["gif"]
-logo = "gif.svg"
-
-[[fileAssociations]]
-name = "svgimages"
-extensions = ["svg"]
-logo = "svg.svg"
-
-[[fileAssociations]]
-name = "psdimages"
-extensions = ["psd", "psb", "pdd"]
-logo = "psd.svg"
-
-[[fileAssociations]]
-name = "genericimages"
-extensions = ["tiff", "tif", "webp", "avif", "bmp", "qoi", "tga", "xcf", "kra", "icns", "ora", "ico"]
-logo = "generic.svg"
-
-[resources]
-languages = ["zh-CN", "en-US"]
diff --git a/dist/msix/psd.svg b/dist/msix/psd.svg
deleted file mode 100644
index 4cbdf12..0000000
--- a/dist/msix/psd.svg
+++ /dev/null
@@ -1,51 +0,0 @@
-
-
-
diff --git a/dist/msix/svg.svg b/dist/msix/svg.svg
deleted file mode 100644
index 4514a57..0000000
--- a/dist/msix/svg.svg
+++ /dev/null
@@ -1,53 +0,0 @@
-
-
-
diff --git a/locales/msix/msix.pot b/locales/msix/msix.pot
new file mode 100644
index 0000000..0ef9ada
--- /dev/null
+++ b/locales/msix/msix.pot
@@ -0,0 +1,164 @@
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"POT-Creation-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME \n"
+"Language-Team: LANGUAGE \n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"X-Generator: MetaGlot/polib\n"
+
+#. Display name of the application, referenced as ms-resource:AppDisplayName.
+msgid "Pineapple Pictures"
+msgstr ""
+
+#. Publisher display name, referenced as ms-resource:PublisherDisplayName.
+msgid "Chestnut Software"
+msgstr ""
+
+#. Application description, referenced as ms-resource:AppDescription.
+msgid "Pineapple Pictures - Image Viewer"
+msgstr ""
+
+#. Display name of the JPEG file type association (jpg, jpeg, jfif),
+#. referenced as ms-resource:FileTypeJpegDisplayName.
+msgid "JPEG Image"
+msgstr ""
+
+#. Display name of the GIF file type association, referenced as ms-
+#. resource:FileTypeGifDisplayName.
+msgid "GIF Animation Image"
+msgstr ""
+
+#. Display name of the PNG file type association (png, apng), referenced as
+#. ms-resource:FileTypePngDisplayName.
+msgid "PNG Image"
+msgstr ""
+
+#. Display name of the SVG file type association, referenced as ms-
+#. resource:FileTypeSvgDisplayName.
+msgid "Scalable Vector Graphics"
+msgstr ""
+
+#. Display name of the WebP file type association, referenced as ms-
+#. resource:FileTypeWebpDisplayName.
+msgid "WebP Image"
+msgstr ""
+
+#. Display name of the AVIF file type association, referenced as ms-
+#. resource:FileTypeAvifDisplayName.
+msgid "AV1 Image File"
+msgstr ""
+
+#. Display name of the ICO file type association, referenced as ms-
+#. resource:FileTypeIcoDisplayName.
+msgid "Windows Icon Image"
+msgstr ""
+
+#. Display name of the ICNS file type association, referenced as ms-
+#. resource:FileTypeIcnsDisplayName.
+msgid "Apple Icon Image"
+msgstr ""
+
+#. Display name of the Photoshop file type association (psd, psb, pdd, psdt),
+#. referenced as ms-resource:FileTypePsdDisplayName.
+msgid "Photoshop Document"
+msgstr ""
+
+#. Display name of the Krita file type association, referenced as ms-
+#. resource:FileTypeKraDisplayName.
+msgid "Krita Document"
+msgstr ""
+
+#. Display name of the GIMP file type association, referenced as ms-
+#. resource:FileTypeXcfDisplayName.
+msgid "GIMP Document"
+msgstr ""
+
+#. Display name of the TARGA file type association, referenced as ms-
+#. resource:FileTypeTgaDisplayName.
+msgid "TARGA Image"
+msgstr ""
+
+#. Display name of the TIFF file type association (tif, tiff), referenced as
+#. ms-resource:FileTypeTifDisplayName.
+msgid "Tagged Image File Format"
+msgstr ""
+
+#. Display name of the BMP file type association, referenced as ms-
+#. resource:FileTypeBmpDisplayName.
+msgid "Bitmap"
+msgstr ""
+
+#. Display name of the WBMP file type association, referenced as ms-
+#. resource:FileTypeWbmpDisplayName.
+msgid "Wireless Bitmap"
+msgstr ""
+
+#. Display name of the DDS file type association, referenced as ms-
+#. resource:FileTypeDdsDisplayName.
+msgid "DirectDraw Surface"
+msgstr ""
+
+#. Display name of the HDR file type association (hdr, exr), referenced as ms-
+#. resource:FileTypeHdrDisplayName.
+msgid "High Dynamic Range Image"
+msgstr ""
+
+#. Display name of the IFF file type association, referenced as ms-
+#. resource:FileTypeIffDisplayName.
+msgid "Interchange File Format"
+msgstr ""
+
+#. Display name of the Softimage PIC file type association, referenced as ms-
+#. resource:FileTypePicDisplayName.
+msgid "Softimage Picture"
+msgstr ""
+
+#. Display name of the PCX file type association, referenced as ms-
+#. resource:FileTypePcxDisplayName.
+msgid "PiCture eXchange PC Paintbrush Image"
+msgstr ""
+
+#. Display name of the QOI file type association, referenced as ms-
+#. resource:FileTypeQoiDisplayName.
+msgid "Quite OK Image"
+msgstr ""
+
+#. Display name of the Sun Raster file type association (ras, sun), referenced
+#. as ms-resource:FileTypeRasDisplayName.
+msgid "Sun Raster Image"
+msgstr ""
+
+#. Display name of the OpenRaster file type association, referenced as ms-
+#. resource:FileTypeOraDisplayName.
+msgid "OpenRaster Image"
+msgstr ""
+
+#. Display name of the ANI file type association, referenced as ms-
+#. resource:FileTypeAniDisplayName.
+msgid "Animated Cursor"
+msgstr ""
+
+#. Display name of the Portable Float Map file type association (pfm, phm),
+#. referenced as ms-resource:FileTypePfmDisplayName.
+msgid "Portable Float Map"
+msgstr ""
+
+#. Display name of the Silicon Graphics file type association (rgb, rgba, bw,
+#. sgi), referenced as ms-resource:FileTypeRgbDisplayName.
+msgid "Silicon Graphics Image"
+msgstr ""
+
+#. Display name of the Pixar file type association, referenced as ms-
+#. resource:FileTypePxrDisplayName.
+msgid "Pixar Raster Image"
+msgstr ""
+
+#. Display name of the Scitex CT file type association, referenced as ms-
+#. resource:FileTypeSctDisplayName.
+msgid "Scitex Continuous Tone"
+msgstr ""
diff --git a/locales/msix/zh_CN.po b/locales/msix/zh_CN.po
new file mode 100644
index 0000000..a8d8810
--- /dev/null
+++ b/locales/msix/zh_CN.po
@@ -0,0 +1,132 @@
+msgid ""
+msgstr ""
+"Project-Id-Version: pineapple-pictures\n"
+"Language: zh_CN\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Plural-Forms: nplurals=1; plural=0;\n"
+
+#. Display name of the application, referenced as ms-resource:AppDisplayName.
+msgid "Pineapple Pictures"
+msgstr "菠萝看图"
+
+#. Publisher display name, referenced as ms-resource:PublisherDisplayName.
+msgid "Chestnut Software"
+msgstr ""
+
+#. Application description, referenced as ms-resource:AppDescription.
+msgid "Pineapple Pictures - Image Viewer"
+msgstr ""
+
+#. Display name of the JPEG file type association (jpg, jpeg, jfif), referenced as ms-resource:FileTypeJpegDisplayName.
+msgid "JPEG Image"
+msgstr "JPEG 图像"
+
+#. Display name of the GIF file type association, referenced as ms-resource:FileTypeGifDisplayName.
+msgid "GIF Animation Image"
+msgstr "GIF 动图"
+
+#. Display name of the PNG file type association (png, apng), referenced as ms-resource:FileTypePngDisplayName.
+msgid "PNG Image"
+msgstr "PNG 图像"
+
+#. Display name of the SVG file type association, referenced as ms-resource:FileTypeSvgDisplayName.
+msgid "Scalable Vector Graphics"
+msgstr "可缩放矢量图像"
+
+#. Display name of the WebP file type association, referenced as ms-resource:FileTypeWebpDisplayName.
+msgid "WebP Image"
+msgstr "WebP 图像"
+
+#. Display name of the AVIF file type association, referenced as ms-resource:FileTypeAvifDisplayName.
+msgid "AV1 Image File"
+msgstr "AV1 图像文件"
+
+#. Display name of the ICO file type association, referenced as ms-resource:FileTypeIcoDisplayName.
+msgid "Windows Icon Image"
+msgstr "Windows 图标图像"
+
+#. Display name of the ICNS file type association, referenced as ms-resource:FileTypeIcnsDisplayName.
+msgid "Apple Icon Image"
+msgstr "苹果图标图像"
+
+#. Display name of the Photoshop file type association (psd, psb, pdd, psdt), referenced as ms-resource:FileTypePsdDisplayName.
+msgid "Photoshop Document"
+msgstr "Photoshop 文档"
+
+#. Display name of the Krita file type association, referenced as ms-resource:FileTypeKraDisplayName.
+msgid "Krita Document"
+msgstr "Krita 文档"
+
+#. Display name of the GIMP file type association, referenced as ms-resource:FileTypeXcfDisplayName.
+msgid "GIMP Document"
+msgstr "GIMP 文档"
+
+#. Display name of the TARGA file type association, referenced as ms-resource:FileTypeTgaDisplayName.
+msgid "TARGA Image"
+msgstr "TARGA 图像"
+
+#. Display name of the TIFF file type association (tif, tiff), referenced as ms-resource:FileTypeTifDisplayName.
+msgid "Tagged Image File Format"
+msgstr "标签图像文件格式"
+
+#. Display name of the BMP file type association, referenced as ms-resource:FileTypeBmpDisplayName.
+msgid "Bitmap"
+msgstr "位图"
+
+#. Display name of the WBMP file type association, referenced as ms-resource:FileTypeWbmpDisplayName.
+msgid "Wireless Bitmap"
+msgstr "无线位图"
+
+#. Display name of the DDS file type association, referenced as ms-resource:FileTypeDdsDisplayName.
+msgid "DirectDraw Surface"
+msgstr "DirectDraw 表面"
+
+#. Display name of the HDR file type association (hdr, exr), referenced as ms-resource:FileTypeHdrDisplayName.
+msgid "High Dynamic Range Image"
+msgstr "高动态范围图像"
+
+#. Display name of the IFF file type association, referenced as ms-resource:FileTypeIffDisplayName.
+msgid "Interchange File Format"
+msgstr "可交换文件格式"
+
+#. Display name of the Softimage PIC file type association, referenced as ms-resource:FileTypePicDisplayName.
+msgid "Softimage Picture"
+msgstr "Softimage 图像"
+
+#. Display name of the PCX file type association, referenced as ms-resource:FileTypePcxDisplayName.
+msgid "PiCture eXchange PC Paintbrush Image"
+msgstr "PC Paintbrush 图像"
+
+#. Display name of the QOI file type association, referenced as ms-resource:FileTypeQoiDisplayName.
+msgid "Quite OK Image"
+msgstr "挺 OK 图像"
+
+#. Display name of the Sun Raster file type association (ras, sun), referenced as ms-resource:FileTypeRasDisplayName.
+msgid "Sun Raster Image"
+msgstr "Sun 栅格图象"
+
+#. Display name of the OpenRaster file type association, referenced as ms-resource:FileTypeOraDisplayName.
+msgid "OpenRaster Image"
+msgstr "OpenRaster 图象"
+
+#. Display name of the ANI file type association, referenced as ms-resource:FileTypeAniDisplayName.
+msgid "Animated Cursor"
+msgstr "动态光标"
+
+#. Display name of the Portable Float Map file type association (pfm, phm), referenced as ms-resource:FileTypePfmDisplayName.
+msgid "Portable Float Map"
+msgstr "便携式浮点图"
+
+#. Display name of the Silicon Graphics file type association (rgb, rgba, bw, sgi), referenced as ms-resource:FileTypeRgbDisplayName.
+msgid "Silicon Graphics Image"
+msgstr "Silicon Graphics 图像"
+
+#. Display name of the Pixar file type association, referenced as ms-resource:FileTypePxrDisplayName.
+msgid "Pixar Raster Image"
+msgstr "Pixar 栅格图像"
+
+#. Display name of the Scitex CT file type association, referenced as ms-resource:FileTypeSctDisplayName.
+msgid "Scitex Continuous Tone"
+msgstr "Scitex 连续色调图像"