extensions icon indicating copy to clipboard operation
extensions copied to clipboard

[Google Translate] update `Keyboard` shortcuts + modernize to use latest React

Open xmok opened this issue 3 weeks ago • 2 comments

Description

  • Make Shortcuts cross-platform
  • Modernize to latest Raycast configuration with updated React (hopefully fixes #23410)
  • Fix "Javanese" language code

Screencast

Checklist

xmok avatar Dec 22 '25 14:12 xmok

Thank you for your contribution! :tada:

🔔 @gebeto @FezVrasta @ickas @metakirby5 @tangerine1202 @nirtamir2 @pernielsentikaer @rasitayaz @Popalay @LitoMore @channingkuo @likid1412 you might want to have a look.

You can use this guide to learn how to check out the Pull Request locally in order to test it.

📋 Quick checkout commands
BRANCH="ext/translate"
FORK_URL="https://github.com/xmok/raycast-extensions.git"
EXTENSION_NAME="google-translate"
REPO_NAME="raycast-extensions"

git clone -n --depth=1 --filter=tree:0 -b $BRANCH $FORK_URL
cd $REPO_NAME
git sparse-checkout set --no-cone "extensions/$EXTENSION_NAME"
git checkout
cd "extensions/$EXTENSION_NAME"
npm install && npm run dev

Due to our current reduced availability, the initial review may take up to 10-15 business days.

raycastbot avatar Dec 22 '25 15:12 raycastbot

Greptile Summary

This PR successfully modernizes the Google Translate extension to support cross-platform operation and resolves the React compatibility issue reported in #23410.

Key Changes:

  • Updated keyboard shortcuts to cross-platform format (macOS: cmd, Windows: ctrl/alt)
  • Upgraded to latest Raycast API (1.104.1) and utils (2.2.2) with modern React support
  • Migrated ESLint configuration to flat config format using @raycast/eslint-config
  • Removed manual TranslatePreferences interface (now auto-generated in raycast-env.d.ts)
  • Updated TypeScript to ES2023 with modern JSX transform
  • Added Windows platform support to package.json
  • Added README documentation

Technical Implementation: The shortcuts now use platform-specific modifiers: {{ macOS: {{ modifiers: ["cmd"], key: "t" }}, Windows: {{ modifiers: ["ctrl"], key: "t" }} }}. Some shortcuts like MoveUp/MoveDown use Raycast's built-in common shortcuts for consistency.

The dependency updates resolve the React hook error from #23410 by upgrading from React 17 to React 19, ensuring proper hook context handling.

Confidence Score: 5/5

  • This PR is safe to merge - it's a clean modernization with no breaking changes
  • The changes are straightforward dependency updates and keyboard shortcut migrations. The code follows Raycast best practices, removes deprecated patterns (manual Preferences interface), and adds proper cross-platform support. All changes are well-documented in the changelog.
  • No files require special attention

Important Files Changed

Filename Overview
extensions/google-translate/package.json Updated dependencies to latest Raycast API (1.104.1) and utils (2.2.2), upgraded React, TypeScript, ESLint, and other dev dependencies. Added Windows platform support.
extensions/google-translate/src/translate.tsx Updated keyboard shortcuts to use cross-platform format with separate macOS/Windows specifications. No functional changes to translation logic.
extensions/google-translate/src/actions.tsx Updated keyboard shortcuts to cross-platform format (cmd→ctrl on Windows, opt→alt on Windows). Clean implementation with no issues.
extensions/google-translate/eslint.config.js Migrated to modern ESLint flat config format using @raycast/eslint-config. Clean migration with proper imports.
extensions/google-translate/tsconfig.json Updated TypeScript config to ES2023, added jsx react-jsx transform. Modern configuration aligned with latest Raycast standards.
extensions/google-translate/src/types.ts Removed manual TranslatePreferences interface definition (now auto-generated in raycast-env.d.ts). Follows best practices.

greptile-apps[bot] avatar Dec 22 '25 15:12 greptile-apps[bot]

Published to the Raycast Store: https://raycast.com/gebeto/translate

github-actions[bot] avatar Dec 24 '25 14:12 github-actions[bot]

:tada: :tada: :tada:

We've rewarded your Raycast account with some credits. You will soon be able to exchange them for some swag.

raycastbot avatar Dec 24 '25 14:12 raycastbot