Translation Sessions Guide
This guide covers accessing translation session logs using the WIIL Platform JS SDK. Translation sessions represent records of translation operations performed by the AI system.
Quick Start​
import { WiilClient } from 'wiil-js';
const client = new WiilClient({
apiKey: 'your-api-key',
});
// List translation sessions
const result = await client.translationSessions.list();
console.log('Total sessions:', result.meta.totalCount);
result.data.forEach(session => {
console.log(`- ${session.id}: ${session.sourceLanguage} -> ${session.targetLanguage}`);
});
Architecture Overview​
Translation sessions are a read-only resource that provides:
- Session Logs: Records of completed translation operations
- Language Tracking: Source and target language for each session
- Audit Trail: Historical record for compliance and analysis
Operations​
List Translation Sessions​
// List with default pagination
const result = await client.translationSessions.list();
console.log('Total sessions:', result.meta.totalCount);
console.log('Page:', result.meta.page, 'of', result.meta.totalPages);
result.data.forEach(session => {
console.log(`Session ${session.id}:`);
console.log(` Source: ${session.sourceLanguage}`);
console.log(` Target: ${session.targetLanguage}`);
});
List with Custom Pagination​
const result = await client.translationSessions.list({
page: 2,
pageSize: 50,
sortBy: 'createdAt',
sortDirection: 'desc',
});
console.log(`Page ${result.meta.page} of ${result.meta.totalPages}`);
console.log(`Showing ${result.data.length} of ${result.meta.totalCount} sessions`);
Get Translation Session by ID​
const session = await client.translationSessions.get('session_123');
console.log('Session ID:', session.id);
console.log('Source Language:', session.sourceLanguage);
console.log('Target Language:', session.targetLanguage);
console.log('Created At:', new Date(session.createdAt).toISOString());
Complete Example​
import { WiilClient } from 'wiil-js';
const client = new WiilClient({
apiKey: process.env.WIIL_API_KEY!,
});
async function exploreTranslationSessions() {
// 1. List all translation sessions
const allSessions = await client.translationSessions.list({
page: 1,
pageSize: 100,
});
console.log('Total translation sessions:', allSessions.meta.totalCount);
if (allSessions.data.length === 0) {
console.log('No translation sessions available');
return;
}
// 2. Analyze language pairs
const languagePairs = new Map<string, number>();
allSessions.data.forEach(session => {
const pair = `${session.sourceLanguage} -> ${session.targetLanguage}`;
languagePairs.set(pair, (languagePairs.get(pair) || 0) + 1);
});
console.log('\nLanguage pair distribution:');
languagePairs.forEach((count, pair) => {
console.log(` ${pair}: ${count} sessions`);
});
// 3. Get details of a specific session
const sessionId = allSessions.data[0].id;
const sessionDetails = await client.translationSessions.get(sessionId);
console.log('\nSession details:');
console.log(' ID:', sessionDetails.id);
console.log(' Source:', sessionDetails.sourceLanguage);
console.log(' Target:', sessionDetails.targetLanguage);
}
exploreTranslationSessions().catch(console.error);
Best Practices​
-
Use pagination for large datasets - Translation sessions can accumulate quickly. Always use pagination to avoid loading too much data.
-
Sort by createdAt for recent sessions - Use
sortBy: 'createdAt'withsortDirection: 'desc'to get the most recent sessions first. -
Check for empty results - Always check if
data.length > 0before accessing session details.
Troubleshooting​
Session Not Found​
Error:
WiilAPIError: Translation session not found
Solution: Verify the session ID exists by listing available sessions first:
const sessions = await client.translationSessions.list();
if (sessions.data.length > 0) {
const session = await client.translationSessions.get(sessions.data[0].id);
console.log('Session found:', session.id);
} else {
console.log('No translation sessions available');
}
No Sessions Available​
If no translation sessions exist, they will be created automatically as translation operations occur through the platform. Translation sessions are generated by:
- Real-time translation services
- Translation provisioning chains
- Multi-language agent interactions