# generaltranslation: General Translation Core SDK: isSameDialect URL: https://generaltranslation.com/en-GB/docs/core/class/methods/locales/is-same-dialect.mdx --- title: isSameDialect description: API reference for the GT isSameDialect method --- ## Overview The `isSameDialect` method checks whether multiple BCP-47 locale codes represent the same dialect. It compares the language and region components of locale codes to determine whether they represent the same linguistic variety. *** ## Reference ### Parameters ### Parameter descriptions | Parameter | Description | | ------------ | ------------------------------------------------------------------------------------------------------------------------------------ | | `...locales` | Variable number of locale codes (strings) or arrays of locale codes to compare. All provided locales must represent the same dialect | ### Returns `boolean` - `true` if all provided locale codes represent the same dialect, `false` otherwise ### Throws No exceptions are thrown. Invalid locale codes are handled gracefully and return `false`. *** ## Behaviour ### Dialect comparison logic The method uses the following logic to determine dialect equality: 1. **Normalise locales** - Standardises all input locale codes 2. **Compare language codes** - All locales must have the same base language 3. **Handle region hierarchy** - A base language matches its regional variants 4. **Exact dialect matching** - Regional variants must match exactly ### Hierarchy rules * Base language (`'en'`) matches any regional variant (`'en-US'`, `'en-GB'`) * Regional variants match only exactly (`'en-US'` ≠ `'en-GB'`) * Script variants are considered in the comparison when present * Different languages never match (`'en'` ≠ `'es'`) ### Input flexibility The method accepts: * Multiple string parameters: `isSameDialect('en-US', 'en-GB')` * Arrays of strings: `isSameDialect(['en-US', 'en-GB'])` * Mixed format: `isSameDialect('en-US', ['en-GB', 'en-CA'])` * Single locale: `isSameDialect('en-US')` (always returns `true`) *** ## Examples ### Basic dialect comparison ```typescript const gt = new GT({ sourceLocale: 'en-US', targetLocale: 'es-ES' }); // Same exact dialects console.log(gt.isSameDialect('en-US', 'en-US')); // true console.log(gt.isSameDialect('zh-CN', 'zh-CN')); // true // Different dialects of same language console.log(gt.isSameDialect('en-US', 'en-GB')); // false console.log(gt.isSameDialect('es-ES', 'es-MX')); // false console.log(gt.isSameDialect('pt-PT', 'pt-BR')); // false // Base language with regional variants console.log(gt.isSameDialect('en', 'en-US')); // true console.log(gt.isSameDialect('es', 'es-ES')); // true console.log(gt.isSameDialect('zh', 'zh-CN')); // true // Different languages console.log(gt.isSameDialect('en-US', 'es-ES')); // false console.log(gt.isSameDialect('fr-FR', 'de-DE')); // false ``` *** ## Notes * Uses standardised locale codes for accurate comparison * Accepts flexible input formats (strings, arrays, mixed) ## Next steps * Compare languages with [`isSameLanguage`](/docs/core/class/methods/locales/is-same-language) * Check locale hierarchy with [`isSupersetLocale`](/docs/core/class/methods/locales/is-superset-locale) * Validate locales with [`isValidLocale`](/docs/core/class/methods/locales/is-valid-locale)