Huge News!Announcing our $40M Series B led by Abstract Ventures.Learn More
Socket
Sign inDemoInstall
Socket

@bscotch/cl2-string-server-shared

Package Overview
Dependencies
Maintainers
1
Versions
14
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

@bscotch/cl2-string-server-shared

**⚠️ This package is only useful for [Butterscotch Shenanigans]([text](https://www.bscotch.net/)) developers! ⚠️**

  • 0.4.0
  • npm
  • Socket score

Version published
Weekly downloads
97
decreased by-13.39%
Maintainers
1
Weekly downloads
 
Created
Source

Crashlands 2: String Server Utilities

⚠️ This package is only useful for Butterscotch Shenanigans developers! ⚠️

Purpose

For string management in Crashlands 2, we have a "String Server" for managing user-facing text strings. This server is primarily used for:

  • Auditing and spell-checking user-facing text to ensure it is correct
  • Creating a Glossary for use in spell-checking within various tools
  • Providing context to help translators accurately translate each string

This package provides shared utilities for use by the String Server and related tools.

Usage

Install:

  • pnpm: pnpm add @bscotch/cl2-string-server-shared
  • npm: npm install @bscotch/cl2-string-server-shared

Create a Client


import { Client } from '@bscotch/cl2-string-server-shared';

const client = new Client({
	baseUrl: process.env.CL2_STRING_SERVER_BASE_URL,
	user: process.env.CL2_STRING_SERVER_ROOT_USER,
	password: process.env.CL2_STRING_SERVER_ROOT_PASS,
});

// Load the strings to send off
const filePath = './path/to/exported/strings.json';
const strings = JSON.parse(await fs.readFile(filePath, 'utf8'));


Make a Commit

const filePath = './path/to/exported/strings.json';
const strings = JSON.parse(await fs.readFile(filePath, 'utf8'));

// (In this case the file's data has a different format than we need)
await client.commitStrings('crashlands-2', {
	branchId: file.branch_name,
	commitNumber: file.version,
	strings: file.strings.map((string) => ({
		id: string.key,
		sortKey: string.sort_key,
		text: string.text,
		immutable: !string.tags.includes('gamechanger'),
		maxCharacters:
			typeof string.character_limit === 'number'
				? string.character_limit
				: undefined,
	})),
});

Download as XLIFF

const xliff = await client.getXliff('crashlands-2', 'develop');
await fs.writeFile('crashlands-2.xliff', xliff);

Load the Glossary

import {Glossary, Client} from '@bscotch/cl2-string-server-shared';

const client = new Client({/* credentials */});
const glossary = await Glossary.create(client, 'crashlands-2');

Spellcheck a String

const words = glossary.parse("Some string with a bunch of user-facing game text");
const checkedWords = words.map(word=>glossary.checkWord(word));
console.log("Invalid words", checkedWords.filter(word=>!word.valid));

Add a new term to the Glossary

Glossary terms are synced to the String Server so that they are centralized!

Terms can be flagged as case-sensitive or case-insensitive, but other forms of the word (plurals, alternate spellings, etc) must be added as separate terms.

await glossary.addTerm("Norb", "Something that definitely is not an orb.")

FAQs

Package last updated on 22 Jan 2024

Did you know?

Socket

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Install

Related posts

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap
  • Changelog

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc