<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
    <channel>
        <title>Posts on Jingyuan</title>
        <link>https://jingyuan-zheng.github.io/post/</link>
        <description>Recent content in Posts on Jingyuan</description>
        <generator>Hugo -- gohugo.io</generator>
        <language>en-US</language>
        <copyright>Jingyuan Zheng</copyright>
        <lastBuildDate>Mon, 25 May 2026 12:00:00 +0200</lastBuildDate><atom:link href="https://jingyuan-zheng.github.io/post/index.xml" rel="self" type="application/rss+xml" /><item>
            <title>A Better US Keyboard for Mac: Accents, Pinyin Tones, Greek Letters, and Maltese Characters</title>
            <link>https://jingyuan-zheng.github.io/p/abc-custom-keyboard/</link>
            <pubDate>Mon, 25 May 2026 12:00:00 +0200</pubDate>
            <guid>https://jingyuan-zheng.github.io/p/abc-custom-keyboard/</guid>
            <description>&lt;img src=&#34;https://jingyuan-zheng.github.io/img/abc-custom-keyboard/featured.png&#34; alt=&#34;Featured image of post A Better US Keyboard for Mac: Accents, Pinyin Tones, Greek Letters, and Maltese Characters&#34; /&gt;&lt;p&gt;This post introduces ABC Custom Keyboard, a macOS keyboard layout that keeps normal US typing unchanged while making accents, pinyin tones, Greek letters, Maltese characters, and symbols easier to type.&lt;/p&gt;&#xA;&lt;p&gt;I have open-sourced &lt;strong&gt;ABC Custom Keyboard&lt;/strong&gt;, a macOS keyboard layout for people who want to keep typing on a standard US ABC keyboard while gaining fast access to European Latin characters, Greek letters, pinyin tone marks, Maltese-friendly extensions, mathematical symbols, numbered markers, and technical symbols.&lt;/p&gt;&#xA;&lt;p&gt;The project is here: &lt;a class=&#34;link&#34; href=&#34;https://github.com/Jingyuan-Zheng/ABC-Custom-Keyboard&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;Jingyuan-Zheng/ABC-Custom-Keyboard&lt;/a&gt;.&lt;/p&gt;&#xA;&lt;h2 id=&#34;why-i-built-it&#34;&gt;Why I Built It&#xA;&lt;/h2&gt;&lt;p&gt;The standard US keyboard is comfortable for daily English typing, programming, and shortcuts. The problem starts when multilingual writing enters the workflow.&lt;/p&gt;&#xA;&lt;p&gt;Typing German, French, Italian, Spanish, Portuguese, Maltese, Greek, pinyin, or academic notation often means switching input sources, opening the character viewer, or memorizing unrelated shortcuts. Language-specific keyboard layouts can solve one problem but create another: the physical keys no longer match US keyboard muscle memory. A German layout, for example, moves &lt;code&gt;Y&lt;/code&gt;.&lt;/p&gt;&#xA;&lt;p&gt;ABC Custom keeps the base layer as standard US ABC, then adds mnemonic &lt;code&gt;Option&lt;/code&gt; layers on top of it. The goal is simple: one US keyboard for multilingual writing and research.&lt;/p&gt;&#xA;&lt;h2 id=&#34;start-from-the-normal-us-abc-layout&#34;&gt;Start from the Normal US ABC Layout&#xA;&lt;/h2&gt;&lt;p&gt;ABC Custom assumes a standard US ABC physical layout. The base layer stays familiar, so everyday English typing and most &lt;code&gt;Command&lt;/code&gt; / &lt;code&gt;Control&lt;/code&gt; shortcuts continue to behave as expected.&lt;/p&gt;&#xA;&lt;div class=&#34;post-figure&#34;&gt;&#xA;    &lt;img src=&#34;https://jingyuan-zheng.github.io/img/abc-custom-keyboard/01-us-abc-base.svg&#34; alt=&#34;Standard US ABC base keyboard layout&#34;&gt;&#xA;    &lt;div class=&#34;caption&#34;&gt;Figure 1: The base layer remains the standard US ABC layout.&lt;/div&gt;&#xA;&lt;/div&gt;&#xA;&lt;h2 id=&#34;direct-option-layers&#34;&gt;Direct Option Layers&#xA;&lt;/h2&gt;&lt;p&gt;Hold &lt;code&gt;Option&lt;/code&gt; and press a key to type the symbol shown on that key. Blue keys are dead-key prefixes: press the prefix first, release it, then press the target key.&lt;/p&gt;&#xA;&lt;div class=&#34;post-figure&#34;&gt;&#xA;    &lt;img src=&#34;https://jingyuan-zheng.github.io/img/abc-custom-keyboard/02-option-layer.svg&#34; alt=&#34;ABC Custom Option keyboard layer&#34;&gt;&#xA;    &lt;div class=&#34;caption&#34;&gt;Figure 2: The Option layer adds common symbols and mnemonic dead-key prefixes.&lt;/div&gt;&#xA;&lt;/div&gt;&#xA;&lt;p&gt;&lt;code&gt;Shift&lt;/code&gt; + &lt;code&gt;Option&lt;/code&gt; opens a second direct layer, including superscript and circled-character prefixes.&lt;/p&gt;&#xA;&lt;div class=&#34;post-figure&#34;&gt;&#xA;    &lt;img src=&#34;https://jingyuan-zheng.github.io/img/abc-custom-keyboard/03-shift-option-layer.svg&#34; alt=&#34;ABC Custom Shift Option keyboard layer&#34;&gt;&#xA;    &lt;div class=&#34;caption&#34;&gt;Figure 3: Shift + Option extends the symbol layer without changing the base layout.&lt;/div&gt;&#xA;&lt;/div&gt;&#xA;&lt;p&gt;The direct layers cover common symbols such as &lt;code&gt;ℕ&lt;/code&gt;, &lt;code&gt;ℤ&lt;/code&gt;, &lt;code&gt;ℚ&lt;/code&gt;, &lt;code&gt;ℝ&lt;/code&gt;, &lt;code&gt;π&lt;/code&gt;, &lt;code&gt;Σ&lt;/code&gt;, &lt;code&gt;√&lt;/code&gt;, &lt;code&gt;∂&lt;/code&gt;, &lt;code&gt;≠&lt;/code&gt;, &lt;code&gt;≤&lt;/code&gt;, &lt;code&gt;≥&lt;/code&gt;, arrows, dashes, currency signs, checkmarks, and boxed or starred markers.&lt;/p&gt;&#xA;&lt;h2 id=&#34;dead-keys-that-are-easier-to-remember&#34;&gt;Dead Keys That Are Easier to Remember&#xA;&lt;/h2&gt;&lt;p&gt;Dead keys make composition fast without assigning every accented character to a separate shortcut.&lt;/p&gt;&#xA;&lt;p&gt;For example:&lt;/p&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;code&gt;Option&lt;/code&gt; + &lt;code&gt;1&lt;/code&gt;, then &lt;code&gt;a&lt;/code&gt;, outputs &lt;code&gt;ā&lt;/code&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;code&gt;Option&lt;/code&gt; + &lt;code&gt;2&lt;/code&gt;, then &lt;code&gt;e&lt;/code&gt;, outputs &lt;code&gt;é&lt;/code&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;code&gt;Option&lt;/code&gt; + &lt;code&gt;5&lt;/code&gt;, then &lt;code&gt;u&lt;/code&gt;, outputs &lt;code&gt;ü&lt;/code&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;code&gt;Option&lt;/code&gt; + &lt;code&gt;G&lt;/code&gt;, then &lt;code&gt;p&lt;/code&gt;, outputs &lt;code&gt;π&lt;/code&gt;&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;p&gt;The pinyin tone layers follow tone numbering: &lt;code&gt;Option&lt;/code&gt; + &lt;code&gt;1&lt;/code&gt; to &lt;code&gt;4&lt;/code&gt; correspond to tones 1-4.&lt;/p&gt;&#xA;&lt;div class=&#34;post-figure&#34;&gt;&#xA;    &lt;img src=&#34;https://jingyuan-zheng.github.io/img/abc-custom-keyboard/04-dead-key-tone-1.svg&#34; alt=&#34;ABC Custom pinyin tone 1 dead key layer&#34;&gt;&#xA;    &lt;div class=&#34;caption&#34;&gt;Figure 4: Tone 1 uses Option + 1, then a vowel key.&lt;/div&gt;&#xA;&lt;/div&gt;&#xA;&lt;p&gt;The umlaut layer uses &lt;code&gt;Option&lt;/code&gt; + &lt;code&gt;5&lt;/code&gt; because the &lt;code&gt;%&lt;/code&gt; key visually suggests two dots. The dot-above layer uses &lt;code&gt;Option&lt;/code&gt; + &lt;code&gt;8&lt;/code&gt; because the &lt;code&gt;*&lt;/code&gt; key suggests a dot or star.&lt;/p&gt;&#xA;&lt;div class=&#34;post-figure&#34;&gt;&#xA;    &lt;img src=&#34;https://jingyuan-zheng.github.io/img/abc-custom-keyboard/08-dead-key-umlaut.svg&#34; alt=&#34;ABC Custom umlaut dead key layer&#34;&gt;&#xA;    &lt;div class=&#34;caption&#34;&gt;Figure 5: The umlaut layer covers letters such as ä, ë, ï, ö, and ü.&lt;/div&gt;&#xA;&lt;/div&gt;&#xA;&lt;div class=&#34;post-figure&#34;&gt;&#xA;    &lt;img src=&#34;https://jingyuan-zheng.github.io/img/abc-custom-keyboard/13-dead-key-dot-above.svg&#34; alt=&#34;ABC Custom dot above dead key layer&#34;&gt;&#xA;    &lt;div class=&#34;caption&#34;&gt;Figure 6: Dot-above characters are useful for Maltese and scholarly transliteration.&lt;/div&gt;&#xA;&lt;/div&gt;&#xA;&lt;h2 id=&#34;greek-subscripts-superscripts-and-technical-symbols&#34;&gt;Greek, Subscripts, Superscripts, and Technical Symbols&#xA;&lt;/h2&gt;&lt;p&gt;For academic writing, the layout also includes Greek letters on mnemonic Latin keys. &lt;code&gt;Option&lt;/code&gt; + &lt;code&gt;G&lt;/code&gt; enters the Greek layer, so &lt;code&gt;p&lt;/code&gt; maps to &lt;code&gt;π&lt;/code&gt;, &lt;code&gt;m&lt;/code&gt; maps to &lt;code&gt;μ&lt;/code&gt;, &lt;code&gt;l&lt;/code&gt; maps to &lt;code&gt;λ&lt;/code&gt;, &lt;code&gt;w&lt;/code&gt; maps to &lt;code&gt;ω&lt;/code&gt;, and &lt;code&gt;d&lt;/code&gt; maps to &lt;code&gt;δ&lt;/code&gt;.&lt;/p&gt;&#xA;&lt;div class=&#34;post-figure&#34;&gt;&#xA;    &lt;img src=&#34;https://jingyuan-zheng.github.io/img/abc-custom-keyboard/11-dead-key-greek.svg&#34; alt=&#34;ABC Custom Greek dead key layer&#34;&gt;&#xA;    &lt;div class=&#34;caption&#34;&gt;Figure 7: The Greek layer places common letters on mnemonic Latin keys.&lt;/div&gt;&#xA;&lt;/div&gt;&#xA;&lt;p&gt;There are also paired subscript and superscript layers, plus degree, diameter, empty-set, copyright, registered, trademark, circled characters, and round operators.&lt;/p&gt;&#xA;&lt;div class=&#34;post-figure&#34;&gt;&#xA;    &lt;img src=&#34;https://jingyuan-zheng.github.io/img/abc-custom-keyboard/15-dead-key-superscript.svg&#34; alt=&#34;ABC Custom superscript dead key layer&#34;&gt;&#xA;    &lt;div class=&#34;caption&#34;&gt;Figure 8: Superscripts are available from Shift + Option + 9.&lt;/div&gt;&#xA;&lt;/div&gt;&#xA;&lt;h2 id=&#34;installation&#34;&gt;Installation&#xA;&lt;/h2&gt;&lt;p&gt;The easiest path is the DMG release:&lt;/p&gt;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;Download &lt;code&gt;ABC-Custom-Keyboard.dmg&lt;/code&gt; from the latest GitHub Release.&lt;/li&gt;&#xA;&lt;li&gt;Open it and drag &lt;code&gt;ABC Custom.bundle&lt;/code&gt; to the &lt;code&gt;Keyboard Layouts&lt;/code&gt; folder shown in the DMG window.&lt;/li&gt;&#xA;&lt;li&gt;Log out and log back in, or restart macOS.&lt;/li&gt;&#xA;&lt;li&gt;Open System Settings and add &lt;code&gt;ABC Custom&lt;/code&gt; from Keyboard Input Sources.&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;&lt;p&gt;Manual installation is also available by copying &lt;code&gt;bundle/ABC Custom.bundle&lt;/code&gt; to:&lt;/p&gt;&#xA;&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;&#xA;&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;&#xA;&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1&#xA;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&#xA;&lt;td class=&#34;lntd&#34;&gt;&#xA;&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;~/Library/Keyboard Layouts/&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&#xA;&lt;/div&gt;&#xA;&lt;/div&gt;&lt;p&gt;Then log out and back in, or restart macOS.&lt;/p&gt;&#xA;&lt;h2 id=&#34;files-for-people-who-want-to-modify-it&#34;&gt;Files for People Who Want to Modify It&#xA;&lt;/h2&gt;&lt;p&gt;The editable layout file is &lt;code&gt;layouts/ABC Custom.keylayout&lt;/code&gt;. The packaged release bundle is under &lt;code&gt;bundle/ABC Custom.bundle&lt;/code&gt;, and the keyboard maps in the README are generated from &lt;code&gt;assets/*.svg&lt;/code&gt; with &lt;code&gt;tools/generate_keymap_svg.py&lt;/code&gt;.&lt;/p&gt;&#xA;&lt;p&gt;If you write in multiple European languages, use pinyin tone marks, type Maltese characters, or frequently need Greek and math symbols, ABC Custom gives those characters a predictable home without giving up the standard US keyboard.&lt;/p&gt;&#xA;&lt;h2 id=&#34;related-posts&#34;&gt;Related Posts&#xA;&lt;/h2&gt;&lt;ul&gt;&#xA;&lt;li&gt;For a native Maltese dictionary that works with macOS Look Up, see &lt;a class=&#34;link&#34; href=&#34;https://jingyuan-zheng.github.io/p/introducing-%c4%a1abra-a-native-maltese-dictionary-for-macos/&#34; &gt;Ġabra Maltese Dictionary for macOS&lt;/a&gt;.&lt;/li&gt;&#xA;&lt;li&gt;For document translation workflows that pair well with multilingual typing, see &lt;a class=&#34;link&#34; href=&#34;https://jingyuan-zheng.github.io/p/translate-document-quick-action/&#34; &gt;Translate Document Quick Action&lt;/a&gt;.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;</description>
        </item><item>
            <title>Translate Documents on Mac from Finder: PDFs, Word Files, Images, and Transcripts</title>
            <link>https://jingyuan-zheng.github.io/p/translate-document-quick-action/</link>
            <pubDate>Mon, 25 May 2026 10:00:00 +0200</pubDate>
            <guid>https://jingyuan-zheng.github.io/p/translate-document-quick-action/</guid>
            <description>&lt;img src=&#34;https://jingyuan-zheng.github.io/img/translate-document-quick-action/featured.png&#34; alt=&#34;Featured image of post Translate Documents on Mac from Finder: PDFs, Word Files, Images, and Transcripts&#34; /&gt;&lt;p&gt;This post introduces Translate Document Quick Action, a Mac workflow that translates PDFs, Word files, Markdown, images, and audio transcripts directly from Finder.&lt;/p&gt;&#xA;&lt;p&gt;I have open-sourced &lt;strong&gt;Translate Document Quick Action&lt;/strong&gt;, a small macOS-focused tool for translating everyday documents directly from Finder, with the core translation workers kept as plain Python scripts.&lt;/p&gt;&#xA;&lt;p&gt;The project is here: &lt;a class=&#34;link&#34; href=&#34;https://github.com/Jingyuan-Zheng/translate-document-quick-action&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;Jingyuan-Zheng/translate-document-quick-action&lt;/a&gt;.&lt;/p&gt;&#xA;&lt;h2 id=&#34;why-i-built-it&#34;&gt;Why I Built It&#xA;&lt;/h2&gt;&lt;p&gt;Translation tasks rarely arrive in one clean format. One day it is a PDF report, the next day it is a Word document, a Markdown note, a screenshot, or an audio recording that first needs a transcript.&lt;/p&gt;&#xA;&lt;p&gt;Most tools handle one piece of that workflow. This project tries to make the common cases feel like one action: select a file in Finder, run the Quick Action, and get translated output next to the original file.&lt;/p&gt;&#xA;&lt;p&gt;It also works from the command line, so the same workers can be used outside Finder or on non-macOS systems where the dependencies are available.&lt;/p&gt;&#xA;&lt;h2 id=&#34;what-it-supports&#34;&gt;What It Supports&#xA;&lt;/h2&gt;&lt;p&gt;The current version supports:&lt;/p&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;strong&gt;PDF&lt;/strong&gt; translation through &lt;code&gt;pdf2zh-next&lt;/code&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;DOCX&lt;/strong&gt; translation by editing Word XML in place, preserving the original package structure and media references&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;Markdown&lt;/strong&gt; translation with common Markdown structure protection&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;TXT&lt;/strong&gt; translation with line-preserving output&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;Images&lt;/strong&gt; through macOS Vision OCR or an optional &lt;code&gt;manga-image-translator&lt;/code&gt; adapter&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;Audio and video transcripts&lt;/strong&gt; through the MacWhisper &lt;code&gt;mw&lt;/code&gt; CLI, with optional transcript translation&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;p&gt;Output files are written next to the input file and existing files are not overwritten. Monolingual outputs use a target-language suffix such as &lt;code&gt;_CN.docx&lt;/code&gt;; bilingual outputs include both language codes, such as &lt;code&gt;_EN_CN.docx&lt;/code&gt;.&lt;/p&gt;&#xA;&lt;h2 id=&#34;translation-output-examples&#34;&gt;Translation Output Examples&#xA;&lt;/h2&gt;&lt;p&gt;For PDFs, the bilingual output uses &lt;code&gt;pdf2zh-next&lt;/code&gt;&amp;rsquo;s alternating-page dual PDF mode, which keeps the original page layout readable while adding the translated version.&lt;/p&gt;&#xA;&lt;div class=&#34;post-figure&#34;&gt;&#xA;    &lt;img src=&#34;https://jingyuan-zheng.github.io/img/translate-document-quick-action/featured.png&#34; alt=&#34;Bilingual PDF translation output&#34;&gt;&#xA;    &lt;div class=&#34;caption&#34;&gt;Figure 1: PDF bilingual output keeps the translated and original pages easy to compare.&lt;/div&gt;&#xA;&lt;/div&gt;&#xA;&lt;p&gt;For Markdown and TXT, the bilingual output is interleaved, which is useful when reviewing paragraph-level translation quality.&lt;/p&gt;&#xA;&lt;div class=&#34;post-figure&#34;&gt;&#xA;    &lt;img src=&#34;https://jingyuan-zheng.github.io/img/translate-document-quick-action/txt-output.png&#34; alt=&#34;TXT translation output&#34;&gt;&#xA;    &lt;div class=&#34;caption&#34;&gt;Figure 2: TXT output keeps the source file easy to inspect line by line.&lt;/div&gt;&#xA;&lt;/div&gt;&#xA;&lt;div class=&#34;post-figure&#34;&gt;&#xA;    &lt;img src=&#34;https://jingyuan-zheng.github.io/img/translate-document-quick-action/markdown-bilingual.png&#34; alt=&#34;Markdown bilingual translation output&#34;&gt;&#xA;    &lt;div class=&#34;caption&#34;&gt;Figure 3: Markdown bilingual output preserves common document structure.&lt;/div&gt;&#xA;&lt;/div&gt;&#xA;&lt;p&gt;DOCX translation inserts the translated paragraph after the original paragraph while preserving media and layout references where possible.&lt;/p&gt;&#xA;&lt;div class=&#34;post-figure&#34;&gt;&#xA;    &lt;img src=&#34;https://jingyuan-zheng.github.io/img/translate-document-quick-action/docx-bilingual.png&#34; alt=&#34;DOCX bilingual translation output&#34;&gt;&#xA;    &lt;div class=&#34;caption&#34;&gt;Figure 4: DOCX bilingual output keeps the original document structure useful for review.&lt;/div&gt;&#xA;&lt;/div&gt;&#xA;&lt;p&gt;Image translation can use a lightweight macOS Vision OCR engine for clean screenshots, diagrams, and slides. It scans text, translates it, and redraws the translated text into detected boxes.&lt;/p&gt;&#xA;&lt;div class=&#34;post-figure&#34;&gt;&#xA;    &lt;img src=&#34;https://jingyuan-zheng.github.io/img/translate-document-quick-action/image-bilingual.png&#34; alt=&#34;Image bilingual translation output&#34;&gt;&#xA;    &lt;div class=&#34;caption&#34;&gt;Figure 5: Image bilingual output places the original and translated images side by side.&lt;/div&gt;&#xA;&lt;/div&gt;&#xA;&lt;h2 id=&#34;engines-and-privacy-choices&#34;&gt;Engines and Privacy Choices&#xA;&lt;/h2&gt;&lt;p&gt;The text translation workers currently support Google and Bing web endpoints, plus a local &lt;strong&gt;Ollama&lt;/strong&gt; adapter. The Google and Bing options are convenient, but they are not official paid APIs and may be rate limited or change upstream behavior.&lt;/p&gt;&#xA;&lt;p&gt;For sensitive documents, I would use a local backend such as Ollama or replace the adapter with an official translation API. The tool is intentionally structured so the file handling and translation backend are separate concerns.&lt;/p&gt;&#xA;&lt;h2 id=&#34;installation&#34;&gt;Installation&#xA;&lt;/h2&gt;&lt;p&gt;The basic setup is a Python environment:&lt;/p&gt;&#xA;&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;&#xA;&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;&#xA;&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1&#xA;&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;2&#xA;&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;3&#xA;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&#xA;&lt;td class=&#34;lntd&#34;&gt;&#xA;&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;python3 -m venv .venv&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;nb&#34;&gt;source&lt;/span&gt; .venv/bin/activate&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;pip install -r requirements.txt&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&#xA;&lt;/div&gt;&#xA;&lt;/div&gt;&lt;p&gt;PDF translation needs &lt;code&gt;pdf2zh-next&lt;/code&gt; installed separately:&lt;/p&gt;&#xA;&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;&#xA;&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;&#xA;&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1&#xA;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&#xA;&lt;td class=&#34;lntd&#34;&gt;&#xA;&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;uv tool install --python python3.13 &lt;span class=&#34;s2&#34;&gt;&amp;#34;pdf2zh-next==2.6.4&amp;#34;&lt;/span&gt; --with &lt;span class=&#34;s2&#34;&gt;&amp;#34;BabelDOC==0.5.16&amp;#34;&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&#xA;&lt;/div&gt;&#xA;&lt;/div&gt;&lt;p&gt;Finder Quick Actions can then be installed with:&lt;/p&gt;&#xA;&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;&#xA;&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;&#xA;&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1&#xA;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&#xA;&lt;td class=&#34;lntd&#34;&gt;&#xA;&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;python3 macos/install_quick_actions.py&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&#xA;&lt;/div&gt;&#xA;&lt;/div&gt;&lt;h2 id=&#34;cli-examples&#34;&gt;CLI Examples&#xA;&lt;/h2&gt;&lt;p&gt;Translate TXT, Markdown, and DOCX:&lt;/p&gt;&#xA;&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;&#xA;&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;&#xA;&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1&#xA;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&#xA;&lt;td class=&#34;lntd&#34;&gt;&#xA;&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;python3 scripts/translate_document_worker.py --engine google --lang-out zh --mode both file.txt notes.md paper.docx&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&#xA;&lt;/div&gt;&#xA;&lt;/div&gt;&lt;p&gt;Translate an image with the lightweight macOS Vision OCR path:&lt;/p&gt;&#xA;&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;&#xA;&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;&#xA;&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1&#xA;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&#xA;&lt;td class=&#34;lntd&#34;&gt;&#xA;&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;python3 scripts/translate_image_worker.py --image-engine simple-macos --text-engine google --lang-in auto --lang-out zh --mode both image.png&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&#xA;&lt;/div&gt;&#xA;&lt;/div&gt;&lt;p&gt;Transcribe audio or video and translate the transcript:&lt;/p&gt;&#xA;&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;&#xA;&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;&#xA;&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1&#xA;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&#xA;&lt;td class=&#34;lntd&#34;&gt;&#xA;&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;python3 scripts/translate_audio_worker.py --operation both --engine google --lang-out zh --mode dual interview.m4a&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&#xA;&lt;/div&gt;&#xA;&lt;/div&gt;&lt;h2 id=&#34;practical-notes&#34;&gt;Practical Notes&#xA;&lt;/h2&gt;&lt;p&gt;This is a practical automation tool, not a promise that every complex document will translate perfectly.&lt;/p&gt;&#xA;&lt;p&gt;DOCX translation covers normal body text, headers, footers, footnotes, endnotes, and comments. Very complex Word features such as SmartArt, embedded objects, equations, or unusual text boxes may need additional testing.&lt;/p&gt;&#xA;&lt;p&gt;The lightweight &lt;code&gt;simple-macos&lt;/code&gt; image engine is best for clean screenshots, slides, and diagrams. It is not AI inpainting. For manga or complex backgrounds, the optional &lt;code&gt;manga-image-translator&lt;/code&gt; adapter is a better fit.&lt;/p&gt;&#xA;&lt;p&gt;If your daily translation work jumps between PDFs, Word documents, Markdown notes, screenshots, and recordings, this project gives you one place to start instead of a pile of one-off scripts.&lt;/p&gt;&#xA;&lt;h2 id=&#34;related-posts&#34;&gt;Related Posts&#xA;&lt;/h2&gt;&lt;ul&gt;&#xA;&lt;li&gt;For fully local AI text translation on Apple Silicon, see &lt;a class=&#34;link&#34; href=&#34;https://jingyuan-zheng.github.io/p/mac-lite-translator-apple-silicon-mlx/&#34; &gt;Mac-Lite-Translator&lt;/a&gt;.&lt;/li&gt;&#xA;&lt;li&gt;For multilingual typing and academic symbols on macOS, see &lt;a class=&#34;link&#34; href=&#34;https://jingyuan-zheng.github.io/p/abc-custom-keyboard/&#34; &gt;ABC Custom Keyboard&lt;/a&gt;.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;</description>
        </item><item>
            <title>How to Claim One Year of ChatGPT Plus in Malta: AI for All Registration, Courses, and Activation</title>
            <link>https://jingyuan-zheng.github.io/p/ai4all-malta-free-ai-courses/</link>
            <pubDate>Tue, 19 May 2026 00:00:00 +0000</pubDate>
            <guid>https://jingyuan-zheng.github.io/p/ai4all-malta-free-ai-courses/</guid>
            <description>&lt;img src=&#34;https://jingyuan-zheng.github.io/img/ai4all-malta-free-ai-courses/featured.png&#34; alt=&#34;Featured image of post How to Claim One Year of ChatGPT Plus in Malta: AI for All Registration, Courses, and Activation&#34; /&gt;&lt;style&gt;&#xA;.post-figure {&#xA;    display: flex;&#xA;    flex-direction: column;&#xA;    align-items: center;&#xA;    margin: 3.25rem 0;&#xA;    gap: 16px;&#xA;}&#xA;.post-figure img {&#xA;    max-width: min(92%, 980px);&#xA;    max-height: 72vh;&#xA;    width: auto;&#xA;    height: auto;&#xA;    border-radius: 14px;&#xA;    box-shadow: 0 10px 36px rgba(0,0,0,0.12);&#xA;    cursor: zoom-in;&#xA;}&#xA;.post-figure .caption {&#xA;    font-size: 0.98rem;&#xA;    color: var(--card-text-color-secondary);&#xA;    text-align: center;&#xA;    max-width: min(92%, 820px);&#xA;    line-height: 1.65;&#xA;    opacity: 0.88;&#xA;}&#xA;@media (max-width: 768px) {&#xA;    .post-figure { margin: 2.5rem 0; }&#xA;    .post-figure img { max-width: 96%; max-height: 70vh; }&#xA;}&#xA;&lt;/style&gt;&#xA;&lt;p&gt;This guide explains how eligible Malta residents can claim one year of ChatGPT Plus or Microsoft 365 Personal with Copilot through the AI for All programme, including eID registration, Coursera courses, exams, and activation.&lt;/p&gt;&#xA;&lt;p&gt;Malta&amp;rsquo;s official &lt;strong&gt;AI for All / AI għal Kulħadd&lt;/strong&gt; programme is a free national AI literacy initiative. According to the &lt;a class=&#34;link&#34; href=&#34;https://mdia.gov.mt/services/ai-for-all-ai-ghal-kulhadd/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;MDIA programme page&lt;/a&gt;, Maltese citizens and residents with an active eID account can take part. After completing the three fundamental modules, eligible participants receive a free subscription to a designated AI platform. OpenAI also announced that the programme gives successful participants &lt;a class=&#34;link&#34; href=&#34;https://openai.com/index/malta-chatgpt-plus-partnership/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;one year of ChatGPT Plus&lt;/a&gt;.&lt;/p&gt;&#xA;&lt;p&gt;The registration portal is here: &lt;a class=&#34;link&#34; href=&#34;https://ai4all.gov.mt&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;https://ai4all.gov.mt&lt;/a&gt;. This guide walks through the practical steps from registration to claiming the subscription.&lt;/p&gt;&#xA;&#xA;    &lt;blockquote&gt;&#xA;        &lt;p&gt;Note: this guide was written on May 19, 2026. The official pages, course flow, and subscription options may change, so check the AI4ALL and MDIA pages before submitting anything important.&lt;/p&gt;&#xA;&#xA;    &lt;/blockquote&gt;&#xA;&lt;h2 id=&#34;before-you-start&#34;&gt;Before You Start&#xA;&lt;/h2&gt;&lt;p&gt;Prepare these first:&lt;/p&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;an active Malta eID account and password;&lt;/li&gt;&#xA;&lt;li&gt;your eID two-factor authentication method, either SMS or authenticator app;&lt;/li&gt;&#xA;&lt;li&gt;the ID number printed on the bottom-right of the back of your Maltese identity card;&lt;/li&gt;&#xA;&lt;li&gt;a personal email address for Coursera account recovery;&lt;/li&gt;&#xA;&lt;li&gt;Chrome or Edge.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;p&gt;I do not recommend Safari for this process. In my test, the minister&amp;rsquo;s video page did not redirect correctly in Safari after playback. Chrome and Edge were more reliable.&lt;/p&gt;&#xA;&lt;h2 id=&#34;open-the-ai4all-website&#34;&gt;Open the AI4ALL Website&#xA;&lt;/h2&gt;&lt;p&gt;Go to the &lt;a class=&#34;link&#34; href=&#34;https://ai4all.gov.mt&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;AI4ALL official website&lt;/a&gt;. The top of the site shows the AI Għal Kulħadd project page (Figure 1). Scroll down and click &lt;strong&gt;Register with e-ID&lt;/strong&gt; (Figure 2).&lt;/p&gt;&#xA;&lt;div class=&#34;post-figure&#34;&gt;&#xA;    &lt;img src=&#34;https://jingyuan-zheng.github.io/img/ai4all-malta-free-ai-courses/fig-1.png&#34; alt=&#34;AI Għal Kulħadd homepage&#34;&gt;&#xA;    &lt;div class=&#34;caption&#34;&gt;Figure 1: AI Għal Kulħadd homepage.&lt;/div&gt;&#xA;&lt;/div&gt;&#xA;&lt;div class=&#34;post-figure&#34;&gt;&#xA;    &lt;img src=&#34;https://jingyuan-zheng.github.io/img/ai4all-malta-free-ai-courses/fig-2.png&#34; alt=&#34;Register with e-ID button on the AI4ALL website&#34;&gt;&#xA;    &lt;div class=&#34;caption&#34;&gt;Figure 2: Scroll down and click Register with e-ID.&lt;/div&gt;&#xA;&lt;/div&gt;&#xA;&lt;h2 id=&#34;watch-the-introductory-video&#34;&gt;Watch the Introductory Video&#xA;&lt;/h2&gt;&lt;p&gt;After clicking the registration button, you will see a video message from the minister (Figure 3). The video cannot be skipped. Once it finishes, the page should redirect to the AI4ALL login screen (Figure 4).&lt;/p&gt;&#xA;&lt;div class=&#34;post-figure&#34;&gt;&#xA;    &lt;img src=&#34;https://jingyuan-zheng.github.io/img/ai4all-malta-free-ai-courses/fig-3-1.png&#34; alt=&#34;Minister video page before AI4ALL registration&#34;&gt;&#xA;    &lt;div class=&#34;caption&#34;&gt;Figure 3: The video page before registration. Wait until it finishes.&lt;/div&gt;&#xA;&lt;/div&gt;&#xA;&lt;div class=&#34;post-figure&#34;&gt;&#xA;    &lt;img src=&#34;https://jingyuan-zheng.github.io/img/ai4all-malta-free-ai-courses/fig-3-2.png&#34; alt=&#34;AI4ALL login page after the video&#34;&gt;&#xA;    &lt;div class=&#34;caption&#34;&gt;Figure 4: The AI4ALL login page after the video redirect.&lt;/div&gt;&#xA;&lt;/div&gt;&#xA;&lt;h2 id=&#34;sign-in-with-eid-and-authorise-the-service&#34;&gt;Sign in with eID and Authorise the Service&#xA;&lt;/h2&gt;&lt;p&gt;Enter your ID number and eID password (Figure 5). The ID number should be taken from the bottom-right of the back of your identity card. It is not the document number on the front of the residence card.&lt;/p&gt;&#xA;&lt;p&gt;Next, enter the one-time code from SMS or your authenticator app (Figure 6). After verification, the platform will ask you to authorise AI Għal Kulħadd to access the required eID details. Review the information, tick the preference box if appropriate, and proceed (Figure 7).&lt;/p&gt;&#xA;&lt;div class=&#34;post-figure&#34;&gt;&#xA;    &lt;img src=&#34;https://jingyuan-zheng.github.io/img/ai4all-malta-free-ai-courses/fig-4-1.png&#34; alt=&#34;Malta eID sign-in page&#34;&gt;&#xA;    &lt;div class=&#34;caption&#34;&gt;Figure 5: eID sign-in. Use the ID number from the back of your identity card.&lt;/div&gt;&#xA;&lt;/div&gt;&#xA;&lt;div class=&#34;post-figure&#34;&gt;&#xA;    &lt;img src=&#34;https://jingyuan-zheng.github.io/img/ai4all-malta-free-ai-courses/fig-4-2.png&#34; alt=&#34;Malta eID two-factor verification page&#34;&gt;&#xA;    &lt;div class=&#34;caption&#34;&gt;Figure 6: Enter the one-time verification code.&lt;/div&gt;&#xA;&lt;/div&gt;&#xA;&lt;div class=&#34;post-figure&#34;&gt;&#xA;    &lt;img src=&#34;https://jingyuan-zheng.github.io/img/ai4all-malta-free-ai-courses/fig-5-1.png&#34; alt=&#34;eID authorisation page for AI Għal Kulħadd&#34;&gt;&#xA;    &lt;div class=&#34;caption&#34;&gt;Figure 7: Authorise AI Għal Kulħadd to access the required eID details.&lt;/div&gt;&#xA;&lt;/div&gt;&#xA;&lt;h2 id=&#34;complete-your-ai4all-profile&#34;&gt;Complete Your AI4ALL Profile&#xA;&lt;/h2&gt;&lt;p&gt;After authorisation, you will enter the AI4ALL registration flow. Choose your preferred language first (Figure 8). I selected English. Then fill in the profile and questionnaire (Figure 9). For personal details such as nationality, employment status, and education level, keep them consistent with your official records where possible.&lt;/p&gt;&#xA;&lt;p&gt;The Terms and Conditions page requires you to scroll to the bottom before continuing. Tick &lt;strong&gt;I have read and understood the terms and conditions above&lt;/strong&gt;, then click Continue (Figure 10).&lt;/p&gt;&#xA;&lt;div class=&#34;post-figure&#34;&gt;&#xA;    &lt;img src=&#34;https://jingyuan-zheng.github.io/img/ai4all-malta-free-ai-courses/fig-5-2.png&#34; alt=&#34;AI4ALL language selection screen&#34;&gt;&#xA;    &lt;div class=&#34;caption&#34;&gt;Figure 8: Choose your preferred platform language.&lt;/div&gt;&#xA;&lt;/div&gt;&#xA;&lt;div class=&#34;post-figure&#34;&gt;&#xA;    &lt;img src=&#34;https://jingyuan-zheng.github.io/img/ai4all-malta-free-ai-courses/fig-5-3.png&#34; alt=&#34;AI4ALL profile questionnaire&#34;&gt;&#xA;    &lt;div class=&#34;caption&#34;&gt;Figure 9: Complete the profile and questionnaire.&lt;/div&gt;&#xA;&lt;/div&gt;&#xA;&lt;div class=&#34;post-figure&#34;&gt;&#xA;    &lt;img src=&#34;https://jingyuan-zheng.github.io/img/ai4all-malta-free-ai-courses/fig-5-4.png&#34; alt=&#34;AI4ALL terms and conditions confirmation&#34;&gt;&#xA;    &lt;div class=&#34;caption&#34;&gt;Figure 10: Scroll to the bottom of the terms, tick the checkbox, and continue.&lt;/div&gt;&#xA;&lt;/div&gt;&#xA;&lt;h2 id=&#34;activate-the-ai-programme-bundle&#34;&gt;Activate the AI Programme Bundle&#xA;&lt;/h2&gt;&lt;p&gt;On the learning platform, find &lt;strong&gt;AI Programme Bundle&lt;/strong&gt; and click &lt;strong&gt;Activate&lt;/strong&gt; (Figure 11). After activation, you should see the three fundamental courses: &lt;strong&gt;Fundamentals of AI&lt;/strong&gt;, &lt;strong&gt;AI for Everyday Life&lt;/strong&gt;, and &lt;strong&gt;AI for Learning&lt;/strong&gt; (Figure 12).&lt;/p&gt;&#xA;&lt;p&gt;You need to complete all three. Click &lt;strong&gt;Access course&lt;/strong&gt; for each one to open Coursera.&lt;/p&gt;&#xA;&lt;div class=&#34;post-figure&#34;&gt;&#xA;    &lt;img src=&#34;https://jingyuan-zheng.github.io/img/ai4all-malta-free-ai-courses/fig-6-1.png&#34; alt=&#34;AI Programme Bundle activation card&#34;&gt;&#xA;    &lt;div class=&#34;caption&#34;&gt;Figure 11: Activate the AI Programme Bundle.&lt;/div&gt;&#xA;&lt;/div&gt;&#xA;&lt;div class=&#34;post-figure&#34;&gt;&#xA;    &lt;img src=&#34;https://jingyuan-zheng.github.io/img/ai4all-malta-free-ai-courses/fig-6-2.png&#34; alt=&#34;Three AI4ALL fundamental courses&#34;&gt;&#xA;    &lt;div class=&#34;caption&#34;&gt;Figure 12: The three fundamental courses appear after activation.&lt;/div&gt;&#xA;&lt;/div&gt;&#xA;&lt;p&gt;The first time you enter Coursera, you may be asked to create a password for an automatically generated account. That account is usually an email address ending in &lt;code&gt;mt&lt;/code&gt;; it is not your personal email address. Save both the generated Coursera account and the password.&lt;/p&gt;&#xA;&lt;h2 id=&#34;set-up-coursera-and-start-a-course&#34;&gt;Set up Coursera and Start a Course&#xA;&lt;/h2&gt;&lt;p&gt;Coursera will ask you to accept its terms and privacy policy, then add a personal recovery email address. The screenshots for this part depend heavily on your Coursera language settings, so I am not including the Chinese-interface screenshots here. The important sequence is:&lt;/p&gt;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;set a password for the generated Coursera account;&lt;/li&gt;&#xA;&lt;li&gt;accept Coursera&amp;rsquo;s terms;&lt;/li&gt;&#xA;&lt;li&gt;add your personal email address;&lt;/li&gt;&#xA;&lt;li&gt;open the course page and click the blue enrol button;&lt;/li&gt;&#xA;&lt;li&gt;tick the course commitment checkbox;&lt;/li&gt;&#xA;&lt;li&gt;click the button to start learning.&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;&lt;h2 id=&#34;complete-each-course&#34;&gt;Complete Each Course&#xA;&lt;/h2&gt;&lt;p&gt;The courses are not long. Most videos are only a few minutes, but they cannot simply be skipped because questions appear during the videos (Figure 13). If you listen carefully, the questions are straightforward. The English level is moderate, and the reading materials are easier than a typical IELTS Reading Part 1 passage.&lt;/p&gt;&#xA;&lt;p&gt;Some reading materials also appear to require time on page before you can continue. Read the material, answer the questions, and return to the AI4ALL platform for the next course.&lt;/p&gt;&#xA;&lt;div class=&#34;post-figure&#34;&gt;&#xA;    &lt;img src=&#34;https://jingyuan-zheng.github.io/img/ai4all-malta-free-ai-courses/fig-8-1.png&#34; alt=&#34;Coursera AI course learning page&#34;&gt;&#xA;    &lt;div class=&#34;caption&#34;&gt;Figure 13: Coursera course page. Some videos include embedded questions.&lt;/div&gt;&#xA;&lt;/div&gt;&#xA;&lt;p&gt;After completing one course, go back to the official AI4ALL platform. You may need to click &lt;strong&gt;View My Bundle&lt;/strong&gt; to return to the programme bundle and continue with the next course (Figure 14).&lt;/p&gt;&#xA;&lt;div class=&#34;post-figure&#34;&gt;&#xA;    &lt;img src=&#34;https://jingyuan-zheng.github.io/img/ai4all-malta-free-ai-courses/fig-9-1.png&#34; alt=&#34;Return to AI4ALL platform after completing a course&#34;&gt;&#xA;    &lt;div class=&#34;caption&#34;&gt;Figure 14: Return to AI4ALL and continue with the remaining courses.&lt;/div&gt;&#xA;&lt;/div&gt;&#xA;&lt;h2 id=&#34;finish-the-exams-and-pathway&#34;&gt;Finish the Exams and Pathway&#xA;&lt;/h2&gt;&lt;p&gt;After all three courses are completed, wait a little and return to the programme home page. Each course area should show an exam entry such as &lt;strong&gt;Check Your Knowledge&lt;/strong&gt;. Open the instructions, scroll down, agree to the conditions, and then enter the exam page.&lt;/p&gt;&#xA;&lt;p&gt;All three courses require an exam. After passing, you will see a completion message (Figure 15), and the platform will show the completed status for the courses (Figure 16).&lt;/p&gt;&#xA;&lt;div class=&#34;post-figure&#34;&gt;&#xA;    &lt;img src=&#34;https://jingyuan-zheng.github.io/img/ai4all-malta-free-ai-courses/fig-9-2.png&#34; alt=&#34;AI4ALL exam completion message&#34;&gt;&#xA;    &lt;div class=&#34;caption&#34;&gt;Figure 15: Completion message after passing the exam.&lt;/div&gt;&#xA;&lt;/div&gt;&#xA;&lt;div class=&#34;post-figure&#34;&gt;&#xA;    &lt;img src=&#34;https://jingyuan-zheng.github.io/img/ai4all-malta-free-ai-courses/fig-9-3.png&#34; alt=&#34;AI4ALL courses completed and passed&#34;&gt;&#xA;    &lt;div class=&#34;caption&#34;&gt;Figure 16: The three fundamental courses show Completed / Pass.&lt;/div&gt;&#xA;&lt;/div&gt;&#xA;&lt;p&gt;The platform will then move you to the Pathway stage. Activate it and complete the scale-style questionnaire. Once the programme progress reaches 100%, the subscription claim page becomes available.&lt;/p&gt;&#xA;&lt;h2 id=&#34;claim-the-one-year-subscription&#34;&gt;Claim the One-Year Subscription&#xA;&lt;/h2&gt;&lt;p&gt;The final claim page lets you choose between &lt;strong&gt;ChatGPT Plus&lt;/strong&gt; and &lt;strong&gt;Microsoft 365 Personal with Copilot AI&lt;/strong&gt; (Figure 17). After choosing one, click the claim button. The activation code will be sent to the email address registered with your eID.&lt;/p&gt;&#xA;&lt;p&gt;If you choose ChatGPT Plus, follow the redirect to &lt;a class=&#34;link&#34; href=&#34;https://chatgpt.com&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;ChatGPT&lt;/a&gt; and activate the offer there (Figure 18). If you choose Microsoft 365 Personal with Copilot, check the &lt;a class=&#34;link&#34; href=&#34;https://www.microsoft.com/en-us/microsoft-365-copilot/personal&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;Microsoft 365 Copilot Personal page&lt;/a&gt; and follow the instructions in the activation email.&lt;/p&gt;&#xA;&lt;div class=&#34;post-figure&#34;&gt;&#xA;    &lt;img src=&#34;https://jingyuan-zheng.github.io/img/ai4all-malta-free-ai-courses/fig-9-4.png&#34; alt=&#34;AI4ALL page for choosing ChatGPT Plus or Microsoft 365 Personal with Copilot&#34;&gt;&#xA;    &lt;div class=&#34;caption&#34;&gt;Figure 17: Choose either ChatGPT Plus or Microsoft 365 Personal with Copilot AI.&lt;/div&gt;&#xA;&lt;/div&gt;&#xA;&lt;div class=&#34;post-figure&#34;&gt;&#xA;    &lt;img src=&#34;https://jingyuan-zheng.github.io/img/ai4all-malta-free-ai-courses/fig-9-5.png&#34; alt=&#34;ChatGPT Plus activation page&#34;&gt;&#xA;    &lt;div class=&#34;caption&#34;&gt;Figure 18: ChatGPT Plus activation page after following the offer link.&lt;/div&gt;&#xA;&lt;/div&gt;&#xA;&lt;h2 id=&#34;notes&#34;&gt;Notes&#xA;&lt;/h2&gt;&lt;p&gt;The three places most likely to cause confusion are:&lt;/p&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Browser redirect: use Chrome or Edge instead of Safari.&lt;/li&gt;&#xA;&lt;li&gt;eID login: use the ID number from the back of the identity card.&lt;/li&gt;&#xA;&lt;li&gt;Coursera account: the generated &lt;code&gt;mt&lt;/code&gt; account is different from your personal email address, so save its password.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;p&gt;The course itself is manageable, but the videos and reading sections take real time. Once the three courses, three exams, and Pathway questionnaire are complete, the platform should show 100% progress and let you claim the one-year subscription.&lt;/p&gt;&#xA;&lt;h2 id=&#34;related-posts&#34;&gt;Related Posts&#xA;&lt;/h2&gt;&lt;ul&gt;&#xA;&lt;li&gt;If your work involves translating PDFs, Word documents, screenshots, or transcripts, see &lt;a class=&#34;link&#34; href=&#34;https://jingyuan-zheng.github.io/p/translate-document-quick-action/&#34; &gt;Translate Document Quick Action&lt;/a&gt;.&lt;/li&gt;&#xA;&lt;li&gt;If you frequently type Maltese characters or other European Latin letters on a US keyboard, see &lt;a class=&#34;link&#34; href=&#34;https://jingyuan-zheng.github.io/p/abc-custom-keyboard/&#34; &gt;ABC Custom Keyboard&lt;/a&gt;.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;</description>
        </item><item>
            <title>How to Make a macOS DMG Installer with a Custom Background</title>
            <link>https://jingyuan-zheng.github.io/p/dmg-maker-create-beautiful-macos-installers-automatically/</link>
            <pubDate>Tue, 12 May 2026 20:10:17 +0800</pubDate>
            <guid>https://jingyuan-zheng.github.io/p/dmg-maker-create-beautiful-macos-installers-automatically/</guid>
            <description>&lt;img src=&#34;https://jingyuan-zheng.github.io/img/dmg-maker/featured.png&#34; alt=&#34;Featured image of post How to Make a macOS DMG Installer with a Custom Background&#34; /&gt;&lt;p&gt;This post introduces DMG Maker, a small tool for creating macOS DMG installers with custom backgrounds, icon placement, and destination shortcuts.&lt;/p&gt;&#xA;&lt;p&gt;I&amp;rsquo;ve just open-sourced &lt;strong&gt;DMG Maker&lt;/strong&gt;, a tool that simplifies the process of creating professional macOS DMG installers.&lt;/p&gt;&#xA;&lt;h2 id=&#34;why-dmg-maker&#34;&gt;Why DMG Maker?&#xA;&lt;/h2&gt;&lt;p&gt;Creating a DMG with a custom background usually involves manual AppleScripting or tedious Finder configurations. DMG Maker automates this using a single command.&lt;/p&gt;&#xA;&lt;h2 id=&#34;key-features&#34;&gt;Key Features&#xA;&lt;/h2&gt;&lt;ul&gt;&#xA;&lt;li&gt;&lt;strong&gt;Auto-Symlink&lt;/strong&gt;: Automatically detects file types (like &lt;code&gt;.dictionary&lt;/code&gt; or &lt;code&gt;.app&lt;/code&gt;) and links them to the correct system folders.&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;Custom Aesthetics&lt;/strong&gt;: Easily apply backgrounds and position icons via coordinates.&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;Open Source&lt;/strong&gt;: Check it out on &lt;a class=&#34;link&#34; href=&#34;https://github.com/Jingyuan-Zheng/dmg-maker&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;GitHub&lt;/a&gt;.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;p&gt;Check out the project to start making your own installers!&lt;/p&gt;&#xA;&lt;h2 id=&#34;related-posts&#34;&gt;Related Posts&#xA;&lt;/h2&gt;&lt;ul&gt;&#xA;&lt;li&gt;I used the same kind of DMG distribution flow for dictionary-style macOS tools such as &lt;a class=&#34;link&#34; href=&#34;https://jingyuan-zheng.github.io/p/introducing-%c4%a1abra-a-native-maltese-dictionary-for-macos/&#34; &gt;Ġabra Maltese Dictionary for macOS&lt;/a&gt;.&lt;/li&gt;&#xA;&lt;li&gt;If you are packaging a keyboard layout instead of an app, see &lt;a class=&#34;link&#34; href=&#34;https://jingyuan-zheng.github.io/p/abc-custom-keyboard/&#34; &gt;ABC Custom Keyboard&lt;/a&gt;.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;</description>
        </item><item>
            <title>Maltese Dictionary for Mac: Look Up Ġabra Words in Dictionary, Spotlight, and Three-Finger Tap</title>
            <link>https://jingyuan-zheng.github.io/p/introducing-%C4%A1abra-a-native-maltese-dictionary-for-macos/</link>
            <pubDate>Fri, 17 Apr 2026 18:30:00 +0800</pubDate>
            <guid>https://jingyuan-zheng.github.io/p/introducing-%C4%A1abra-a-native-maltese-dictionary-for-macos/</guid>
            <description>&lt;img src=&#34;https://jingyuan-zheng.github.io/p/introducing-%C4%A1abra-a-native-maltese-dictionary-for-macos/cover.png&#34; alt=&#34;Featured image of post Maltese Dictionary for Mac: Look Up Ġabra Words in Dictionary, Spotlight, and Three-Finger Tap&#34; /&gt;&lt;p&gt;This post shares a Maltese dictionary packaged for the native macOS Dictionary app, so Maltese words can be looked up from Dictionary, Spotlight, or the three-finger Look Up gesture.&lt;/p&gt;&#xA;&lt;p&gt;Maltese is a unique and beautiful language, but native digital tools for it can sometimes be scarce. Today, I&amp;rsquo;m excited to share a project I&amp;rsquo;ve been working on: &lt;strong&gt;Ġabra Maltese Dictionary for macOS&lt;/strong&gt;.&lt;/p&gt;&#xA;&lt;h3 id=&#34;why-this-project&#34;&gt;Why this project?&#xA;&lt;/h3&gt;&lt;p&gt;The &lt;a class=&#34;link&#34; href=&#34;https://mlrs.research.um.edu.mt/resources/gabra-api/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;Ġabra project&lt;/a&gt; from the University of Malta provides an incredible open lexicon of the Maltese language. However, using this data typically requires interacting with an API or a database. I wanted to bring this wealth of information directly into the macOS ecosystem, allowing users to look up words instantly using the built-in Dictionary app or the system-wide &amp;ldquo;Look up&amp;rdquo; feature (three-finger tap).&lt;/p&gt;&#xA;&lt;p&gt;&lt;img alt=&#34;Screenshot of Ġabra Dictionary&#34; class=&#34;gallery-image&#34; data-flex-basis=&#34;310px&#34; data-flex-grow=&#34;129&#34; height=&#34;1474&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://jingyuan-zheng.github.io/p/introducing-%C4%A1abra-a-native-maltese-dictionary-for-macos/cover.png&#34; srcset=&#34;https://jingyuan-zheng.github.io/p/introducing-%C4%A1abra-a-native-maltese-dictionary-for-macos/cover_hu_b2b1c02b486b8bf8.png 800w, https://jingyuan-zheng.github.io/p/introducing-%C4%A1abra-a-native-maltese-dictionary-for-macos/cover_hu_4ce9601067cfcc3d.png 1600w, https://jingyuan-zheng.github.io/p/introducing-%C4%A1abra-a-native-maltese-dictionary-for-macos/cover.png 1910w&#34; width=&#34;1910&#34;&gt;&lt;/p&gt;&#xA;&lt;h3 id=&#34;technical-challenges&#34;&gt;Technical Challenges&#xA;&lt;/h3&gt;&lt;p&gt;The primary challenge was the sheer volume of data. While there are about 21,000 base lexemes, the lexicon includes nearly &lt;strong&gt;4.5 million inflected word forms&lt;/strong&gt;. Converting this from BSON (the format provided by the Ġabra team) to the Apple Dictionary XML format required a high-performance streaming approach.&lt;/p&gt;&#xA;&lt;p&gt;I wrote a Python engine that processes these millions of entries without loading the entire 1.3GB dataset into memory. This ensures that the dictionary is not only comprehensive but also accurately indexes every plural, conjugation, and variant.&lt;/p&gt;&#xA;&lt;h3 id=&#34;features&#34;&gt;Features&#xA;&lt;/h3&gt;&lt;ul&gt;&#xA;&lt;li&gt;&lt;strong&gt;21,083 entries&lt;/strong&gt;: Full coverage of the Ġabra lexicon.&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;4.5 Million forms&lt;/strong&gt;: Search for &amp;ldquo;skrejjen&amp;rdquo; (plural) and find &amp;ldquo;skrun&amp;rdquo; (propeller) instantly.&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;Rich Metadata&lt;/strong&gt;: Includes phonetic transcriptions, grammatical categories (POS), and root information.&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;Native Experience&lt;/strong&gt;: Works perfectly with Dark Mode, Spotlight, and &amp;ldquo;Look up&amp;rdquo;.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;h3 id=&#34;open-source&#34;&gt;Open Source&#xA;&lt;/h3&gt;&lt;p&gt;I&amp;rsquo;ve decided to open-source the entire build pipeline. You can find the repository on GitHub:&lt;/p&gt;&#xA;&lt;p&gt;👉 &lt;a class=&#34;link&#34; href=&#34;https://github.com/Jingyuan-Zheng/gabra-maltese-macos-dictionary&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;Jingyuan-Zheng/gabra-maltese-macos-dictionary&lt;/a&gt;&lt;/p&gt;&#xA;&lt;p&gt;The repository includes an &lt;code&gt;update.sh&lt;/code&gt; script that automates the process of downloading the latest data and rebuilding the dictionary, ensuring it stays up-to-date with the official Ġabra database.&lt;/p&gt;&#xA;&lt;h3 id=&#34;installation&#34;&gt;Installation&#xA;&lt;/h3&gt;&lt;p&gt;If you just want to use the dictionary, you can download the DMG from the &lt;a class=&#34;link&#34; href=&#34;https://github.com/Jingyuan-Zheng/gabra-maltese-macos-dictionary/releases&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;Releases page&lt;/a&gt;. Simply drag it to your Dictionaries folder and enable it in the Dictionary app settings!&lt;/p&gt;&#xA;&lt;hr&gt;&#xA;&lt;p&gt;I hope this tool helps learners and native speakers alike in exploring the richness of the Maltese language. Sahha!&lt;/p&gt;&#xA;&lt;h2 id=&#34;related-posts&#34;&gt;Related Posts&#xA;&lt;/h2&gt;&lt;ul&gt;&#xA;&lt;li&gt;If you need a keyboard layout for Maltese characters, European Latin letters, and academic symbols, see &lt;a class=&#34;link&#34; href=&#34;https://jingyuan-zheng.github.io/p/abc-custom-keyboard/&#34; &gt;ABC Custom Keyboard&lt;/a&gt;.&lt;/li&gt;&#xA;&lt;li&gt;If you are building macOS dictionary or app installers, see &lt;a class=&#34;link&#34; href=&#34;https://jingyuan-zheng.github.io/p/dmg-maker-create-beautiful-macos-installers-automatically/&#34; &gt;DMG Maker&lt;/a&gt;.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;</description>
        </item><item>
            <title>Local Translation on Mac with TranslateGemma: Fast, Accurate, and Offline</title>
            <link>https://jingyuan-zheng.github.io/p/mac-lite-translator-apple-silicon-mlx/</link>
            <pubDate>Sun, 08 Mar 2026 00:00:00 +0000</pubDate>
            <guid>https://jingyuan-zheng.github.io/p/mac-lite-translator-apple-silicon-mlx/</guid>
            <description>&lt;img src=&#34;https://jingyuan-zheng.github.io/img/mac-lite-translator/featured.png&#34; alt=&#34;Featured image of post Local Translation on Mac with TranslateGemma: Fast, Accurate, and Offline&#34; /&gt;&lt;p&gt;Mac-Lite-Translator is a local translation tool for Mac based on Google TranslateGemma and Apple MLX, designed for fast, accurate, offline translation without uploading text to the cloud.&lt;/p&gt;&#xA;&lt;p&gt;While macOS&amp;rsquo;s native translation is convenient, it often falls short when dealing with complex academic papers, creative writing, or nuanced professional documents. Meanwhile, cloud-based services like ChatGPT and DeepL offer superior quality but raise significant privacy concerns and often require expensive API keys.&lt;/p&gt;&#xA;&lt;p&gt;To bridge this gap, I developed &lt;strong&gt;Mac-Lite-Translator&lt;/strong&gt;, a high-performance, &lt;strong&gt;100% local AI translation tool&lt;/strong&gt; specifically optimized for Apple Silicon (M1, M2, M3, M4) Macs.&lt;/p&gt;&#xA;&lt;p&gt;&lt;img alt=&#34;Mac-Lite-Translator GUI&#34; class=&#34;gallery-image&#34; data-flex-basis=&#34;222px&#34; data-flex-grow=&#34;92&#34; height=&#34;1320&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://github.com/Jingyuan-Zheng/Mac-Lite-Translator_TranslateGemma/raw/main/Screenshots/GUI.png&#34; srcset=&#34;https://jingyuan-zheng.github.io/GUI_6887349020328341596_hu_c66397eb480d87a2.png 800w, https://github.com/Jingyuan-Zheng/Mac-Lite-Translator_TranslateGemma/raw/main/Screenshots/GUI.png 1224w&#34; width=&#34;1224&#34;&gt;&lt;/p&gt;&#xA;&lt;hr&gt;&#xA;&lt;h2 id=&#34;-demo-video&#34;&gt;📺 Demo Video&#xA;&lt;/h2&gt;&lt;p&gt;See Mac-Lite-Translator in action! Watch how it handles academic translation with blazing speed:&lt;/p&gt;&#xA;&lt;div class=&#34;video-wrapper&#34;&gt;&#xA;    &lt;video&#xA;        controls&#xA;        src=&#34;https://github.com/user-attachments/assets/63cae308-71da-452e-8c8a-0f5a54464e74&#34;&#xA;        &#xA;        &#xA;        &#xA;    &gt;&#xA;        &lt;p&gt;&#xA;            Your browser doesn&#39;t support HTML5 video. Here is a&#xA;            &lt;a href=&#34;https://github.com/user-attachments/assets/63cae308-71da-452e-8c8a-0f5a54464e74&#34;&gt;link to the video&lt;/a&gt; instead.&#xA;        &lt;/p&gt;&#xA;    &lt;/video&gt;&#xA;&lt;/div&gt;&#xA;&#xA;&lt;hr&gt;&#xA;&lt;h2 id=&#34;-the-core-google-gemma--apple-mlx&#34;&gt;🚀 The Core: Google Gemma + Apple MLX&#xA;&lt;/h2&gt;&lt;p&gt;The secret to its speed and accuracy lies in its modern tech stack:&lt;/p&gt;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;&lt;strong&gt;Apple MLX Framework:&lt;/strong&gt; Unlike generic translation tools, this project is built on Apple&amp;rsquo;s dedicated machine learning framework. It fully utilizes the Unified Memory and GPU acceleration of M-series chips, delivering performance that leaves standard CPU inference in the dust.&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;Gemma 12B (4-bit):&lt;/strong&gt; Powered by Google&amp;rsquo;s state-of-the-art Gemma 12B model, fine-tuned specifically for translation.&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;&lt;hr&gt;&#xA;&lt;h2 id=&#34;-new-to-ai-what-is-translategemma&#34;&gt;🧐 New to AI? What is TranslateGemma?&#xA;&lt;/h2&gt;&lt;p&gt;If you&amp;rsquo;re wondering what makes this model special compared to a standard chatbot, here&amp;rsquo;s the breakdown:&lt;/p&gt;&#xA;&lt;p&gt;&lt;strong&gt;TranslateGemma&lt;/strong&gt; is a family of open models from Google, purpose-built for high-quality translation tasks.&lt;/p&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;strong&gt;The Origin:&lt;/strong&gt; It&amp;rsquo;s a fine-tuned version of Google&amp;rsquo;s powerful &lt;strong&gt;Gemma 2&lt;/strong&gt; models (built from the same tech behind Gemini).&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;The Difference:&lt;/strong&gt; While general AI models can translate, TranslateGemma has been &amp;ldquo;specialized&amp;rdquo; through training on massive amounts of professional translation data. This makes it far more reliable for complex sentence structures and natural-sounding results across 55+ languages.&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;Expert Level:&lt;/strong&gt; It understands nuances better than smaller, generic models, acting more like a professional translator than a simple word-swapper.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;    &lt;blockquote&gt;&#xA;        &lt;p&gt;&lt;a class=&#34;link&#34; href=&#34;https://huggingface.co/collections/google/translategemma-release-66f26487e497554902c524b0&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;👉 Learn more about TranslateGemma on its official page&lt;/a&gt;&lt;/p&gt;&#xA;&#xA;    &lt;/blockquote&gt;&#xA;&lt;hr&gt;&#xA;&lt;h2 id=&#34;-what-makes-it-unique&#34;&gt;💡 What Makes It Unique?&#xA;&lt;/h2&gt;&lt;h3 id=&#34;1-contextual-style-switching&#34;&gt;1. Contextual Style Switching&#xA;&lt;/h3&gt;&lt;p&gt;Different scenarios require different tones. Mac-Lite-Translator allows you to toggle between:&lt;/p&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;strong&gt;Academic Mode:&lt;/strong&gt; Formal, precise, and perfect for research papers.&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;Casual Mode:&lt;/strong&gt; Natural and approachable for social media or blogging.&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;Web Chat Mode:&lt;/strong&gt; Quick and idiomatic for instant messaging.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;h3 id=&#34;2-built-in-smart-dictionary&#34;&gt;2. Built-in Smart Dictionary&#xA;&lt;/h3&gt;&lt;p&gt;Translating a single word? The script automatically transitions into &lt;strong&gt;Dictionary Mode&lt;/strong&gt;:&lt;/p&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;strong&gt;IPA Phonetics:&lt;/strong&gt; Accurate pronunciation (US/UK).&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;Contextual Definitions:&lt;/strong&gt; Lists meanings, synonyms, and usage.&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;Example Sentences:&lt;/strong&gt; Helps you master the word in context.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;h3 id=&#34;3-native-macos-experience&#34;&gt;3. Native macOS Experience&#xA;&lt;/h3&gt;&lt;p&gt;Integration is key to productivity. By leveraging &lt;strong&gt;macOS Shortcuts&lt;/strong&gt; and &lt;strong&gt;Automator&lt;/strong&gt;, Mac-Lite-Translator feels like a part of the OS. Simply select text, right-click, and see the translation instantly.&lt;/p&gt;&#xA;&lt;hr&gt;&#xA;&lt;h2 id=&#34;-privacy--performance-no-strings-attached&#34;&gt;🔒 Privacy &amp;amp; Performance: No Strings Attached&#xA;&lt;/h2&gt;&lt;ul&gt;&#xA;&lt;li&gt;&lt;strong&gt;100% Offline:&lt;/strong&gt; Your data never leaves your device. No cloud uploads, no tracking, and no privacy compromises.&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;Zero Costs:&lt;/strong&gt; No subscriptions. No API fees for OpenAI or DeepL. As long as your Mac is running, translation is free.&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;Instant Response:&lt;/strong&gt; Thanks to MLX, the 12B model responds at reading speed, making it feel snappier than many cloud alternatives.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;hr&gt;&#xA;&lt;h2 id=&#34;-getting-started&#34;&gt;🛠 Getting Started&#xA;&lt;/h2&gt;&lt;p&gt;This project is open-source and ready for you to explore:&lt;/p&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;strong&gt;GitHub Repository:&lt;/strong&gt; &lt;a class=&#34;link&#34; href=&#34;https://github.com/Jingyuan-Zheng/Mac-Lite-Translator_TranslateGemma&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;Jingyuan-Zheng/Mac-Lite-Translator_TranslateGemma&lt;/a&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;Recommended Setup:&lt;/strong&gt; For the best experience, an Apple Silicon Mac with at least 16GB of RAM is recommended.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;hr&gt;&#xA;&lt;h2 id=&#34;conclusion&#34;&gt;Conclusion&#xA;&lt;/h2&gt;&lt;p&gt;Translation is more than just swapping words; it&amp;rsquo;s about preserving meaning and privacy. &lt;strong&gt;Mac-Lite-Translator&lt;/strong&gt; brings cutting-edge generative AI to your desktop, proving that high-end productivity doesn&amp;rsquo;t have to come at the cost of your data.&lt;/p&gt;&#xA;&lt;p&gt;If you find this tool helpful, feel free to give it a star on &lt;a class=&#34;link&#34; href=&#34;https://github.com/Jingyuan-Zheng/Mac-Lite-Translator_TranslateGemma&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;GitHub&lt;/a&gt;!&lt;/p&gt;&#xA;&lt;h2 id=&#34;related-posts&#34;&gt;Related Posts&#xA;&lt;/h2&gt;&lt;ul&gt;&#xA;&lt;li&gt;For translating PDFs, DOCX files, Markdown, screenshots, and transcripts from Finder, see &lt;a class=&#34;link&#34; href=&#34;https://jingyuan-zheng.github.io/p/translate-document-quick-action/&#34; &gt;Translate Document Quick Action&lt;/a&gt;.&lt;/li&gt;&#xA;&lt;li&gt;For multilingual typing on macOS, especially accented letters, pinyin tones, Greek, and Maltese-friendly characters, see &lt;a class=&#34;link&#34; href=&#34;https://jingyuan-zheng.github.io/p/abc-custom-keyboard/&#34; &gt;ABC Custom Keyboard&lt;/a&gt;.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;</description>
        </item><item>
            <title>How to Apply for Malta eID Online</title>
            <link>https://jingyuan-zheng.github.io/p/how-to-apply-for-malta-eid-online/</link>
            <pubDate>Wed, 07 May 2025 00:00:00 +0000</pubDate>
            <guid>https://jingyuan-zheng.github.io/p/how-to-apply-for-malta-eid-online/</guid>
            <description>&lt;img src=&#34;https://jingyuan-zheng.github.io/img/malta-eid/featured.png&#34; alt=&#34;Featured image of post How to Apply for Malta eID Online&#34; /&gt;&lt;style&gt;&#xA;.post-figure {&#xA;    display: flex;&#xA;    flex-direction: column;&#xA;    align-items: center;&#xA;    margin: 3.5rem 0;&#xA;    gap: 18px;&#xA;}&#xA;.post-figure img {&#xA;    max-width: 40%;&#xA;    max-height: 50vh;&#xA;    width: auto;&#xA;    height: auto;&#xA;    border-radius: 16px;&#xA;    box-shadow: 0 10px 40px rgba(0,0,0,0.1);&#xA;    transition: transform 0.3s cubic-bezier(0.4, 0, 0.2, 1), box-shadow 0.3s ease;&#xA;    cursor: zoom-in;&#xA;}&#xA;.post-figure img:hover {&#xA;    transform: scale(1.15);&#xA;    box-shadow: 0 20px 50px rgba(0,0,0,0.2);&#xA;    z-index: 10;&#xA;}&#xA;.post-figure .caption {&#xA;    font-size: 1.05rem;&#xA;    color: var(--card-text-color-secondary);&#xA;    text-align: center;&#xA;    max-width: 80%;&#xA;    line-height: 1.6;&#xA;    opacity: 0.85;&#xA;}&#xA;@media (max-width: 768px) {&#xA;    .post-figure img { max-width: 95%; max-height: 60vh; }&#xA;    .post-figure img:hover { transform: none; }&#xA;}&#xA;&lt;/style&gt;&#xA;&lt;p&gt;This guide explains how to request and activate a Malta eID online through Identità, including the identity document number, document number, activation email, and verification steps that are easy to mix up.&lt;/p&gt;&#xA;&lt;p&gt;Malta eID is needed for many official online services, including services related to driving licences and other government processes. If you prefer not to handle everything in person, the online route is usually enough once you know where to look.&lt;/p&gt;&#xA;&lt;p&gt;&lt;strong&gt;Who this applies to:&lt;/strong&gt; Malta residents, permanent residents, citizens, and approved immigration applicants who are eligible for an eID.&lt;/p&gt;&#xA;&lt;p&gt;&lt;strong&gt;Important:&lt;/strong&gt; If you have already submitted Form ID 10, or you know your eID was requested but not activated, you can contact Identità directly and ask for an activation link. The official Register Residence page lists &lt;code&gt;+356 25904300&lt;/code&gt; and &lt;code&gt;infoeid.identita@gov.mt&lt;/code&gt; as contact options. If you are not sure whether an eID request exists for you, follow the steps below.&lt;/p&gt;&#xA;&lt;h2 id=&#34;open-the-identità-website&#34;&gt;Open the Identità Website&#xA;&lt;/h2&gt;&lt;p&gt;Go to the Identità website and choose &lt;strong&gt;Contact Us&lt;/strong&gt; from the homepage.&lt;/p&gt;&#xA;&lt;div class=&#34;post-figure&#34;&gt;&#xA;    &lt;img src=&#34;https://jingyuan-zheng.github.io/img/malta-eid/img3.png&#34; alt=&#34;Identità homepage&#34;&gt;&#xA;    &lt;div class=&#34;caption&#34;&gt;Figure 1: Identità homepage.&lt;/div&gt;&#xA;&lt;/div&gt;&#xA;&lt;h2 id=&#34;choose-the-eid-support-option&#34;&gt;Choose the eID Support Option&#xA;&lt;/h2&gt;&lt;p&gt;In the support form, choose the &lt;strong&gt;eID&lt;/strong&gt; option under Support Station. Fill in the other fields according to your situation.&lt;/p&gt;&#xA;&lt;p&gt;The most important field is &lt;strong&gt;Identity Card Number&lt;/strong&gt;. For residence card holders, this is usually &lt;strong&gt;not&lt;/strong&gt; the number on the top-right front side of the card. Look at the back of the card instead and find the number under &lt;strong&gt;IDENTITY DOCUMENT NUMBER&lt;/strong&gt; (Figure 3). If you do not yet have the physical card, ask the staff which number you should use.&lt;/p&gt;&#xA;&lt;div class=&#34;post-figure&#34;&gt;&#xA;    &lt;img src=&#34;https://jingyuan-zheng.github.io/img/malta-eid/img4.png&#34; alt=&#34;Identità contact form with eID support selected&#34;&gt;&#xA;    &lt;div class=&#34;caption&#34;&gt;Figure 2: Select the eID support option.&lt;/div&gt;&#xA;&lt;/div&gt;&#xA;&lt;div class=&#34;post-figure&#34;&gt;&#xA;    &lt;img src=&#34;https://jingyuan-zheng.github.io/img/malta-eid/img5.png&#34; alt=&#34;Identity Document Number on the back of a Malta residence card&#34;&gt;&#xA;    &lt;div class=&#34;caption&#34;&gt;Figure 3: The Identity Document Number is on the back of the card.&lt;/div&gt;&#xA;&lt;/div&gt;&#xA;&lt;h2 id=&#34;wait-for-identitàs-email&#34;&gt;Wait for Identità&amp;rsquo;s Email&#xA;&lt;/h2&gt;&lt;p&gt;After submitting the form, wait for an email reply. During working hours, the response can arrive within a few minutes. The staff may ask for extra details by email; in my case, the follow-up was straightforward.&lt;/p&gt;&#xA;&lt;p&gt;The email may also include a Customer Care link. Activating it gives you a support chat-style account, but continuing by normal email is also fine if that is easier.&lt;/p&gt;&#xA;&lt;h2 id=&#34;use-the-activation-link&#34;&gt;Use the Activation Link&#xA;&lt;/h2&gt;&lt;p&gt;Once the staff process your request, they will send an activation link to the email address registered with your identity record.&lt;/p&gt;&#xA;&lt;p&gt;If you do not receive it, check your spam folder and ask them to try again. If the registered email address is wrong or inaccessible, you may need to visit an office with your ID card to update the email first.&lt;/p&gt;&#xA;&lt;p&gt;During activation, two numbers are easy to confuse:&lt;/p&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;strong&gt;ID Number:&lt;/strong&gt; use the &lt;strong&gt;IDENTITY DOCUMENT NUMBER&lt;/strong&gt; from the back of the card (Figure 3).&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;Document No.:&lt;/strong&gt; usually use the full alphanumeric document number printed on the top-right front side of the residence card (Figure 4), including the country-code letters.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;div class=&#34;post-figure&#34;&gt;&#xA;    &lt;img src=&#34;https://jingyuan-zheng.github.io/img/malta-eid/img6.jpg&#34; alt=&#34;Document number on the front of a Malta residence card&#34;&gt;&#xA;    &lt;div class=&#34;caption&#34;&gt;Figure 4: Document No. usually refers to the full number on the front of the card.&lt;/div&gt;&#xA;&lt;/div&gt;&#xA;&lt;h2 id=&#34;set-up-email-and-two-factor-verification&#34;&gt;Set Up Email and Two-Factor Verification&#xA;&lt;/h2&gt;&lt;p&gt;After activation, you can update your email address and set up two-factor verification. The website will guide you through the options.&lt;/p&gt;&#xA;&lt;p&gt;If you use an iPhone, the built-in Camera app or the system code scanner can scan the QR code directly, so you may not need to install a separate authenticator app. SMS verification is also possible if it is available for your number.&lt;/p&gt;&#xA;&lt;div class=&#34;post-figure&#34;&gt;&#xA;    &lt;img src=&#34;https://jingyuan-zheng.github.io/img/malta-eid/img7.jpg&#34; alt=&#34;Scanning the Malta eID verification QR code with iPhone&#34;&gt;&#xA;    &lt;div class=&#34;caption&#34;&gt;Figure 5: On iPhone, the system camera can scan the verification QR code directly.&lt;/div&gt;&#xA;&lt;/div&gt;&#xA;&lt;h2 id=&#34;notes&#34;&gt;Notes&#xA;&lt;/h2&gt;&lt;p&gt;If visiting an Identità office is convenient, staff may be able to guide you through the process in person. If you prefer to handle it remotely, the online request and activation flow should work as long as the registered email address is correct and you use the right numbers from the card.&lt;/p&gt;&#xA;&lt;h2 id=&#34;related-posts&#34;&gt;Related Posts&#xA;&lt;/h2&gt;&lt;ul&gt;&#xA;&lt;li&gt;After your eID is active, you may also find the &lt;a class=&#34;link&#34; href=&#34;https://jingyuan-zheng.github.io/p/ai4all-malta-free-ai-courses/&#34; &gt;Malta AI for All guide&lt;/a&gt; useful. That programme also uses eID login for registration and subscription claiming.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;</description>
        </item></channel>
</rss>
