# rrweb: Replaying recordings
URL: https://generaltranslation.com/en-US/docs/rrweb/guides/replaying-recordings.mdx
---
title: Replaying recordings
description: How to embed a localized recorder bundle with the React or framework-agnostic gt-rrweb player.
related:
links:
- /docs/rrweb/guides/recording-walkthroughs
---
The replayer renders the recorded flow with playback controls, click-based cursor movement, scrubbing, theme controls, full-screen playback, and optional locale switching.
## Replay in React [#react]
Use [`GTReplayer`](/docs/rrweb/reference/replayer#gt-replayer) when the host application uses React. Size the parent or pass `style`; the player fills its container width and determines its own aspect ratio.
```tsx title="src/Walkthrough.tsx"
import { GTReplayer } from 'gt-rrweb/replay';
import bundle from './walkthrough.json';
export function Walkthrough() {
return (
);
}
```
`initialLocale` takes effect only when it appears in `bundle.locales`. The source locale is used otherwise.
## Replay without React [#without-react]
Use [`createGTReplayer()`](/docs/rrweb/reference/replayer#create-gt-replayer) with a DOM element in any browser application. Keep the returned handle and destroy it when the host view is removed.
```ts title="src/walkthrough.ts"
import { createGTReplayer } from 'gt-rrweb/replay';
import bundle from './walkthrough.json';
const container = document.querySelector('#walkthrough');
if (!container) throw new Error('Missing walkthrough container');
const player = createGTReplayer(container, bundle, {
initialLocale: 'fr',
});
// When the host view is removed:
player.destroy();
```
## Control locale switching [#locale-switching]
Locale controls appear when the bundle includes `locales` and `switchLocalesAllowed` is not `false`. Switching replaces the text overlay in place without rebuilding the rrweb session.
Set `switchLocalesAllowed={false}` for an embed fixed to one locale. A bundle without locale metadata or overlays replays the recorded source normally.
## Inspect bundles locally [#debug]
Set `debug` to allow a developer to drag a recording JSON file onto the player and replace the active bundle. Invalid JSON and non-recording files produce a notice instead of replacing the session.
Keep `debug` off for ordinary embeds; it defaults to `false`.
## Next steps
- /docs/rrweb/guides/recording-walkthroughs