HelloHolaこんにちはBonjourহ্যালোمرحبا
HelloHolaこんにちはBonjourহ্যালোمرحبا
Sign InGet Started
Sign Up

Localization delivery for product teams

Update product copy instantly.No new app release required.

Edit, review, and publish localized strings from one workspace. Versioned OTA bundles reach Flutter, Android, iOS, and Web, with an offline cache on every device.

Start localizing
flutter pub add glocally_flutter
shop.example.com
ShopwiseShopDealsHelp
EN · v12

Welcome to Glocally

Your shop, in your language. Track orders and pay in seconds.

Get started
New in
Best sellers
Gift cards
9:41
Skip
EN

Welcome to Glocally

Your shop, in your language. Track orders and pay in seconds.

Get started
Strings
app.welcome_title
Welcome to Glocally
checkout.confirm_btn
Get started
Live on web + mobile · no app store reviewPublished

< 15ms

Global CDN Sync Latency

0 App Store

Resubmissions Required

10,000+

Virtualized Keys @ 60 FPS

100%

Offline-First Uptime Guarantee

4SDK targets
2Controlled release tracks
ΔVersion-aware delivery
OfflineLocal cache fallback

Release workflow

Fast changes, with control at every step.

Glocally separates editing, review, staging, and production delivery, so teams move quickly without turning localization into an uncontrolled publish button.

  1. 01Edit

    Update product copy in one workspace.

  2. 02Review

    Validate placeholders, formats, and approvals.

  3. 03Build

    Create a versioned OTA translation bundle.

  4. 04Stage

    Give QA a controlled release to verify.

  5. 05Publish

    Promote the approved bundle to production.

  6. 06Deliver

    SDKs fetch the delta and retain a local cache.

Over-the-air delivery

Fix copy without waiting on app review.

Traditional mobile localization can require a new binary and store review for every copy fix. Glocally gives approved string changes their own versioned delivery path.

Traditional App Store Release

The Slow, Rigid Cycle
3 to 7 Days
1
Developer Ticket Required: Copywriters cannot edit code directly; engineering must pull requests and update string XML / localizable files.
2
Binary Compilation: CI/CD rebuilds APK and IPA files, runs full test suites, taking 30–60 minutes.
3
App Store Review Wait: Apple and Google review queues take 24–72 hours, with constant risk of unexpected rejection.
4
Fragmented User Adoption:30–50% of users don't have auto-updates turned on, leaving them on outdated, broken copy for months.
Result: High engineering overheadLost conversions

Glocally Over-The-Air (OTA)

Instant Global Deployment
Versioned release
1
Edit in Browser: Product managers and translators refine strings directly in the Glocally Collaborative Studio.
2
Controlled Publish: Create a release version, validate it in staging, then promote the approved bundle to production.
3
Versioned Delta Sync: The SDK requests only strings changed since its current bundle version.
4
SDK Delivery: Active clients check for an approved bundle and keep a local fallback for offline use.
Result: A dedicated copy-release workflow Copy-only versioned bundles

Offline-First Resilience

Translations cache in local device storage so approved copy remains available when the device has no active connection.

Version-aware delta delivery

Server computes exact string diffs. If you change 2 keys out of 5,000, only those 2 keys are downloaded, saving massive mobile bandwidth.

App Version Freezing

Lock bundle releases to specific semantic app versions (e.g. 1.0.0 → 1.2.0) to prevent breaking legacy production builds.

Prerelease QA Track

Stage builds for internal QA testers using the prerelease: true flag. Verify changes live on device before flipping to production.

Designed for copy updates: Glocally delivers versioned localization data rather than executable application code. Teams should review their own release and store-policy requirements.

Platform

Built for large localization projects.

A fast studio for large translation sets, AI-assisted checks, and live collaboration between engineers and writers.

WorkspaceVirtualized rows
TanStack Virtualized EngineWorkspace: Virtualized rows

High-Density Virtualized Studio

Work through large translation sets without rendering every row into the page at once.

Virtual Window: Row 4,520 - 4,526 of 12,480FPS: 60.0 (0ms jank)
billing.invoice_overdueYour invoice #%s is overdueOK
auth.mfa_push_promptTap approve on your mobile appOK
cart.empty_state_descAdd items from catalog to startREVIEWED
Zero layout shifts with dynamic height virtualization
Instant multi-column sorting and complex regex key filtering
Batch edit, tag assignment, and status approvals across thousands of keys
Only visible rows are mounted as you move through a project
Production ready across iOS, Android, and FlutterActive in Studio

Developers

Native SDKs for every platform.

Quickstarts, architecture notes, and setup guides for Flutter, Android, iOS, and Web/Backend APIs.

Flutter (Dart)

Kurdish & RTL Native

Native LocalizationsDelegate with zero-crash Kurdish & RTL engines

Flutter CLI:flutter pub add glocally_flutter
main.dart
import 'package:flutter/material.dart';
import 'package:glocally_flutter/glocally_flutter.dart';

void main() {
  runApp(
    // Wrap the entire app with GlocallyScope for live OTA updates + RTL
    const GlocallyScope(
      child: MyApp(),
    ),
  );
}

class MyApp extends StatelessWidget {
  const MyApp({super.key});

  @override
  Widget build(BuildContext context) {
    return MaterialApp(
      title: 'Glocally Demo',
      localizationsDelegates: [
        GlocallyLocalizationsDelegate(
          config: GlocallyConfig(
            projectId: '<PROJECT_ID>',
            sdkKey: '<SDK_KEY>', // gl_sk_live_... or gl_sk_test_...
            isProduction: true,
            prerelease: false, // true for QA builds
            appVersion: '1.0.0', // optional bundle freeze
          ),
        ),
        // Prevents Material/Cupertino crashes on unlisted locales (Kurdish, etc.)
        ...GlocallyLocalizations.fallbackDelegates,
      ],
      supportedLocales: const [
        Locale('en'),
        Locale('ar'),
        Locale('ku', 'Ckb'), // Kurdish Sorani — Automatic RTL
        Locale('ku', 'BA'),  // Kurdish Badini — Automatic RTL
      ],
      home: const HomeScreen(),
    );
  }
}

class HomeScreen extends StatelessWidget {
  const HomeScreen({super.key});

  @override
  Widget build(BuildContext context) {
    final l10n = GlocallyLocalizations.of(context);
    final welcome = l10n?.translate('welcome_title') ?? 'Welcome';
    final score = l10n?.translate('user_score', ['John', 42]) ?? '';

    return Scaffold(
      appBar: AppBar(title: Text(welcome)),
      body: Center(child: Text(score)),
    );
  }
}
Architectural Note: Wrap the root with GlocallyScope, then register GlocallyLocalizationsDelegate + fallbackDelegates. translate() resolves from the OTA memory cache, then the disk cache, then your fallback string. OTA updates are automatic.

Platform Features & Compliance

Built-in unlisted locale fallback delegates (Kurdish Sorani `ku-Ckb`, Badini `ku-BA`, Arabic `ar`, Persian `fa`)
Automatic Directionality(textDirection) injection via GlocallyScope
GlocallyScope rebuilds the UI tree when an OTA delta arrives
WidgetsBindingObserver re-syncs when the app returns to foreground

How it works

From the studio to the screen.

Follow a string from an edit in the studio to native rendering on iOS, Android, and Flutter.

01
Phase 1: Cloud Publishing

Studio Edits & Build Release

Translators or developers edit strings in the Glocally Studio. Clicking "Create Build" packages the release snapshot and increments the project version (V → V+1).

Dashboard & AIInspecting
02
Phase 2: Global Distribution

Edge CDN Delta Generation

The CDN calculates exact string diffs against the previous build. Only modified or added keys are bundled into a compressed JSON delta.

Versioned deliveryClick to inspect
03
Phase 3: Client Sync Engine

Offline-First Local Storage

When your app starts, the Glocally SDK checks for updates in the background. If a newer version exists, it downloads the delta and updates the local storage cache.

Local Disk CacheClick to inspect
04
Phase 4: Runtime Swizzling

Zero-Code Resource Resolution

Standard getString(R.string.key) or NSLocalizedString calls are intercepted dynamically. If the key exists in OTA memory, it renders the live string; otherwise, it falls back to local files.

Swizzling & WrapperClick to inspect
Phase 1: Cloud Publishing•Dashboard & AI

Studio Edits & Build Release

Translators or developers edit strings in the Glocally Studio. Clicking "Create Build" packages the release snapshot and increments the project version (V → V+1).

Automatic string validation & token security check
Target track selection: Staging (prerelease) or Production
Release snapshot immutable packaging
Offline Safe: Device never blocks on network failure; cached local data renders immediately.
OTA delta response
Authenticated with: your SDK key (gl_sk_live_...)
Context: locale en-US · cached version 42 · android
{
  "success": true,
  "data": {
    "version": 43,
    "delta": true,
    "strings": {
      "hero.title": "Deploy Global Apps at Instant Speed",
      "checkout.cta": "Upgrade to Professional Plan",
      "auth.welcome_back": "Welcome back, enter your password"
    },
    "removedKeys": []
  },
  "timestamp": "2026-09-23T12:00:00.000Z"
}

Pricing

Plans that grow with your product.

Choose a plan for your team and translation volume. Billed monthly or yearly.

FAQ

Questions, answered.

Compliance, offline behaviour, architecture, and security.

Glocally delivers localization key-value data rather than executable application code. Store and release requirements can change, so your team should review the current policies that apply to your application and release process.

Support

Talk to the team.

Need help with an SDK integration, or want to discuss enterprise infrastructure? Reach the right desk directly.

Technical Helpdesk

Developer & Technical Support

Direct line to our SDK and core platform engineers

Encountering sync issues, runtime crashes, token validation errors, or need guidance setting up Flutter, Android, iOS, or Web client SDKs? Our technical support engineers are on standby.

[email protected]
Response time: < 2-4 hours (24/7 for outages)
Flutter, Android, iOS, and Web SDK code assistance
OTA release pipeline & CDN cache troubleshooting
Email Support
Sales & Partnerships

Enterprise, Sales & General Inquiries

Custom contracts, SLAs, security, and partnerships

Need a custom contract, SAML / Okta SSO, custom translation LLM training, dedicated SLA uptime guarantees, or want to discuss strategic ecosystem partnerships? Get in touch with our executive team.

[email protected]
Enterprise SLA with dedicated Slack / Teams channel
Security compliance, vendor reviews & SOC2 documents
Custom billing, volume licenses & wire transfer invoicing
Contact Enterprise Sales
Direct Message Composer

Send a Message to Glocally

Select your inquiry type to route your message to the appropriate desk.

Destination:[email protected]
Technical, SDK, OTA & Bug Reports
Prefer writing directly? Use [email protected]
Looking for immediate answers?Browse our Frequently Asked Questions
Direct emails:[email protected]•[email protected]

Make localization part of your release workflow.

Give product, localization, and engineering teams one controlled path from copy change to versioned delivery.

Get Started Now
flutter pub add glocally_flutter

A controlled localization workspace with versioned Over-The-Air delivery and native client SDKs.

SDKs & APIs
Product
CompanyPrivacy PolicyTerms of ServiceSign InSign Up
Support[email protected][email protected]
© 2026 Glocally Inc. All rights reserved.Versioned OTA delivery · Offline-first SDK caching
GLOCALLYGLOCALLYGLOCALLY