{
  "games": "Games",
  "games_title": "Creative Gameplay of Classic Online Games",
  "algorithms": "Algorithms",
  "algorithms_title": "Visualization of Common Algorithms",
  "tools": "Tools",
  "tools_title": "Unique and Practical Online Tools",
  "blog": "Blog",
  "blog_title": "Blog About How I Use AI",
  "try": "Try",
  "tableofcontents": "Table of Contents",
  "gomoku_title": "Gomoku",
  "gomoku_description": "Backgammon is a two-player game of pure strategy classic chess game, this game supports custom selection of forbidden hand rules, supports regret chess, welcome to the five-in-a-row battle.",
  "black_turn": "Black's Turn",
  "black_win": "Black Wins",
  "white_turn": "White's Turn",
  "white_win": "White Wins",
  "start_game": "Start Game",
  "restart_game": "Restart Game",
  "game_over": "Game Over!",
  "congratulations": "Congratulations!",
  "white": "White",
  "undo_black": "Undo Black",
  "undo_white": "Undo White",
  "not_your_turn": "It's not your turn to undo",
  "no_undo_left": "No undo moves left",
  "three_three_forbidden": "{{player}} loses due to Three-Three forbidden move!",
  "long_connection_forbidden": "{{player}} loses due to Long Connection forbidden move!",
  "four_four_forbidden": "{{player}} loses due to Four-Four forbidden move!",
  "forbidden_move": "Forbidden move: {{type}}",
  "three_three": "Three-Three Forbidden",
  "four_four": "Four-Four Forbidden",
  "long_connection": "Long Connection Forbidden",
  "no_restriction": "No Restriction",
  "forbidden_rules": "Select Forbidden Rules",
  "show_move_numbers": "Show Move Numbers",
  "player_color": "Player Color",
  
  "go_back": "Go Back",
  "chess_title": "Chinese Chess",
  "chess_description": "Chinese Chess game with a minimalist board layout, complete rules, alternating turns between black and red players, checks, and endgame determination. Undo feature is also supported.",
  "undo_move": "Undo Move",
  "current_player": "Current Player: {{player}}",
  "player_in_check": "{{player}} is in check!",
  "checkmate_announcement": "Checkmate! {{winner}} wins!",
  "stalemate_announcement": "Stalemate!",
  "red": "Red",
  "black": "Black",
  "move_steps": "{{steps}} Steps",
  "tetris_title": "Tetris",
  "tetris_description": "Classic Tetris game, including block rotation, movement, and acceleration. Challenge your spatial awareness and quick thinking!",
  "gain_score": "Scores: {{score}}",
  "bfs_path_title": "BFS Pathfinding",
  "bfs_path_description": "Visualization of the Breadth-First Search pathfinding algorithm. Set obstacles, start and end points in a network, and watch the pathfinding process.",
  "heap_title": "Visualization of Heap Operations",
  "heap_description": "Visual operation of the max (min) heap algorithm, supports setting max or min heap, and supports operations such as insertion and deletion. Dynamically display the specific steps of the operation, helping to understand the heap operations.",
  "insert_node": "Insert Node",
  "delete_root": "Delete Root",
  "input_number": "Input a number",
  "deleted_node": "Deleted Root Node",
  "max_heap": "Max Heap",
  "min_heap": "Min Heap",
  "heap_type": "Heap Type",
  
  "astar_title": "A* Algorithm Find Shortest Path",
  "astar_description": "Visualization of the A* pathfinding algorithm. Set obstacles, start and end points in a network, and watch the pathfinding process.",
  "set_obstacles": "Set Obstacles",
  "set_start_point": "Set Start Point",
  "set_end_point": "Set End Point",
  "grid_width": "Grid Width",
  "grid_height": "Grid Height",
  "search_speed": "Find Speed",
  "find_path": "Find Path",
  "reset_grid": "Reset Grid",
  "path_found": "Path Found",
  "no_path_found": "No Path Found",
  "set_start_end_points": "Please set start and end points",
  "dijkstra_title": "Dijkstra Algorithm Find Shortest Path",
  "dijkstra_description": "Visualize the Dijkstra algorithm to find the shortest path. You can customize an undirected graph, set the weight of the line, and then click Find Path to view the algorithm execution steps",
  "submit": "Submit",
  "weight": "Weight",
  "weight_matrix": "Weight Matrix",
  "select_start": "Select Start",
  "search_process": "Search Process",
  "round": "Round",
  "next_step": "Next Step",
  "auto_play": "Auto Play",

  "bar_chart_race_title": "BarChartRace(Developing)",
  "bar_chart_race_description": "Dynamic bar charts are usually used to show how data changes over time. This page allows you to customize data and time, generate dynamic bar charts, and supports a large number of custom settings.",
  "2048_title": "Game 2048",
  "2048_description": "2048 game, by sliding the blocks, add up the blocks with the same number, and finally get the number 2048 to succeed. ",
  "reset": "Reset",
  "one_step_win": "One Step Win",
  "one_step_fail": "One Step Fail",
  "snake_title": "Snake Game",
  "snake_description": "Classic Snake game, control the snake to eat food, and grow longer. Avoid hitting the wall or the snake's body.",
  "resume_game": "Resume Game",
  "pause_game": "Pause Game",
  "obstacles_difficulty": "Obstacles Difficulty",
  "power_ups": "Power Ups",
  "ghost_power": "Ignore Obstacles",
  "food_rain_power": "Too Many Foods",
  "golden_power": "Break Obstacles",

  "ratelimit_title": "Rate Limit",
  "ratelimit_description": "Rate limiting is a strategy to control the rate of traffic sent or received by a network. Fixed window rate limiting and sliding window rate limiting are the most common rate limiting algorithms. This page shows the characteristics and comparison of these two algorithms.",
  "rate_limit_compare": "Sliding Window VS Fixed Window Rate Limiting Comparison",
  "rate_limit_qps": "Request Limit per Second",
  "rate_limit_random": "Generate random data",
  "total_request": "Total Requests",
  "sliding_window_success": "Sliding Success",
  "sliding_window_fail": "Sliding Fail",
  "fixed_window_success": "Fixed Success",
  "fixed_window_fail": "Fixed Fail",
  "tokenbucket_title": "Token Bucket",
  "tokenbucket_description": "Token bucket is a rate limiting algorithm that can be used to control the rate of traffic. You can set the bucket capacity, token generation rate, and request rate, and then draw the curve of successful or failed requests.",
  "token_bucket_chart": "Token Bucket Algorithm Visualization",
  "select_language": "Select Language",
  "success_request": "Success Request",
  "fail_request": "Fail Request",
  "remain_tokens": "Remain Tokens",
  "bucket_capacity": "Bucket Capacity",
  "token_rate": "Token Rate",
  "request_rate": "Request Rate",
  "start": "Start",
  "pause": "Pause",
  "time": "Time",
  "count": "Count",
  "trie_title": "Trie Algorithm Visualization",
  "trie_description": "Explore the visualization tool for Trie prefix tree operations. Interactive animation demonstrates the insertion, search, and deletion operations of words, providing a intuitive understanding of the working principle of Trie trees.",
  "insert": "Insert",
  "delete": "Delete",
  "search": "Search",
  "random_initialize": "Random Initialize",
  "enter_word": "Enter a word",
  "words_in_trie": "Words in Trie",
  "find_word_in_trie": "{{word}} is in trie",
  "no_word_in_trie": "{{word}} is not in trie",
  "linkedlist_title": "Linked List",
  "linkedlist_description": "Linked list is a linear data structure that consists of a sequence of elements, each element points to the next element in the sequence. This page shows the process of insert, delete and search for elements in the linked list.",
  "node_not_found": "Node not found",
  "node_found_index": "Node found at index {{index}}",
  "enter_node_value": "Enter a node value",
  "insert_after_pos": "Inert after node {{index}}",
  "insert_at_end": "Insert at end",
  "click_node_to_remove": "Click a node to remove",
  "remove_node_at": "Remove node at index {{index}}",
  "stack_title": "Visualization of Stack Data Structure",
  "stack_description": "Stack is a linear data structure that follows the Last In First Out (LIFO). This page shows the process of push, pop and adjust the height. Dynamically displays the detailed content of stack operations, helping to understand stack operations.",
  "nextElement": "Next Element",
  "stackTop": "Top",
  "stackBottom": "Bottom",
  "push": "Push",
  "pop": "Pop",
  "stackHeight": "Stack Height",
  "pushedElements": "Pushed Elements (in order of push)",
  "poppedElements": "Popped Elements (in order of pop)",
  "stackFull": "Stack is full, cannot push",
  "stackEmpty": "Stack is empty, cannot pop",
  "pushed": "Pushed: {{item}}",
  "popped": "Popped: {{item}}",
  "stackReset": "Stack has been reset",
  "stackHeightAdjusted": "Stack height adjusted to {{height}}",
  "invalidNewHeight": "New height is smaller than current stack size, cannot adjust",
  "hashtable_title": "Visualization of Hash Table Operations",
  "hashtable_description": "Hash table is a data structure that implements an associative array abstract data type, a structure that can map keys to values. This page shows the process of insert, delete and search for key-value pairs in the hash table.",
  "hashTableVisualization": "Hash Table Visualization",
  "bucketSize": "Bucket Size",
  "hashFunction": "Hash Function",
  "simpleHash": "Simple Hash",
  "addMode": "Add Mode",
  "random": "Random",
  "sequential": "Sequential",
  "add": "Add",
  "enterKeyToSearch": "Enter key to search",
  "enterKeyToDelete": "Enter key to delete",
  "key": "Key",
  "value": "Value",
  "totalItems": "Total items",
  "loadFactor": "Load factor",
  "searchCompleted": "Search completed in {{steps}} step(s).",
  "keyFoundInBucket": "Key found in bucket {{index}}.",
  "keyNotFound": "Key not found. Last checked bucket: {{index}}.",
  "found": "Found: {{key}}:{{value}}",
  "notFound": "{{key}} not found",
  "inserted": "Inserted {{key}}:{{value}} at index {{index}}",
  "deletedKey": "Deleted key: {{key}}",
  "keyNotFoundForDelete": "Key not found: {{key}}",
  "bucket": "Bucket",
  "items": "items",
  "skiplist_title": "Skip List",
  "skiplist_description": "Skip list is a data structure that allows fast search within an ordered sequence of elements. This page shows the process of insert, delete and search for elements in the skip list.",
  "settings": "Settings",
  "max_level": "Max Level",
  "probability": "Probability",
  "random_init": "Random Init",
  "enter_number": "Enter a number",
  "invalid_input": "Please enter a valid number",
  "insert_operation": "Insert {{value}}",
  "insert_success": "Insertion successful",
  "insert_fail": "Insertion failed, value already exists",
  "search_operation": "Search {{value}}",
  "search_found": "Found",
  "search_not_found": "Not found",
  "delete_operation": "Delete {{value}}",
  "operation_success": "Operation successful",
  "settings_updated": "Skip list settings updated",
  "random_init_success": "10 random nodes initialized",
  "operation_result": "Operation: {{operation}}, Result: {{result}}",

  "subtitles_title": "Image Subtitle Stitching",
  "subtitles_description": "Easily add beautiful captions to your pictures. You can customize the font, size, color, and position of the subtitle. You can also add gradient backgrounds and special effects. No software download required, process images in your local browser, free and safe.",
  "preview": "Preview",
  "downloadImage": "Download Image",
  "replaceImage": "Replace Image",
  "uploadToStart": "Upload an image to start",
  "uploadImage": "Upload Image",
  "subtitleContent": "Subtitle Content",
  "subtitlePlaceholder": "Subtitle {{number}}",
  "addSubtitle": "Add Subtitle",
  "subtitleSettings": "Subtitle Settings",
  "subtitleHeight": "Subtitle Height: {{percent}}%",
  "pixelHeight": " ({{pixels}} pixels)",
  "fontSize": "Font Size: {{percent}}% of subtitle height",
  "pixelFontSize": " ({{pixels}} pixels)",
  "fontColor": "Font Color",
  "fontType": "Font Type",
  "microsoftYahei": "Microsoft YaHei",
  "simsun": "SimSun",
  "simhei": "SimHei",
  "kaiti": "KaiTi",
  "fangsong": "FangSong",
  "textShadow": "Text Shadow",
  "textStroke": "Text Stroke",
  "backgroundColor": "Background Color",
  "backgroundOpacity": "Background Opacity: {{opacity}}",
  "useGradientBackground": "Use Gradient Background",
  "gradientEndColor": "Gradient End Color",

  "dpcoin_title": "Dynamic Programming (Coin Change)",
  "dpcoin_description": "Visualization of the dynamic programming coin change algorithm. Set the target amount and the available coin denominations, click the step-by-step calculation button, and observe how the optimal solution is found step by step. The state transition process column of the output shows how the algorithm builds the solution of the larger problem from smaller problems.",
  "targetAmount": "Target Amount",
  "addCoinDenomination": "Add Coin Denomination",
  "currentCoinDenominations": "Current Coin Denominations",
  "stepByStep": "Step by Step",
  "quickComplete": "Quick Complete",
  "calculationResults": "Results (Current Coins: {{coins}})",
  "amount": "Amount",
  "minCoins": "Min Coins",
  "optimalCombination": "Optimal Combination",
  "stateTransitionProcess": "State Transition Process",
  "removeCoin": "Remove Coin",

  "hashring_title": "Consistent Hash Ring",
  "hashring_description": "The hash ring visualization of consistent hashing allows you to clearly and intuitively understand the key value allocation of consistent hashing, and add key value migration for deleting nodes. It also supports setting up virtual nodes (shadow nodes) to understand the effect of distribution balance optimization.",
  "position": "Position",
  "keysOnNode": "Keys on this node: {{count}}",
  "virtualNodes": "Virtual Nodes: {{count}}",
  "first10Keys": "First 10 keys",
  "removeNode": "Remove Node",
  "hash": "Hash",
  "assignedTo": "Assigned to",
  "migratingTo": "Migrating to",
  "node": "Node",
  "totalKeys": "Total Keys",
  "sampleKeys": "Sample Keys",
  "actions": "Actions",
  "remove": "Remove",
  "numberOfNodes": "Number of Nodes",
  "virtualNodesPerNode": "Virtual Nodes per Node (0 for none)",
  "totalKeys_count": "Total Keys: {{count}}",
  "samplingRate": "Sampling Rate: {{rate}}",
  "initializeRing": "Initialize Ring",
  "addNode": "Add Node",
  "add100Keys": "Add 100 Keys",
  "add1000Keys": "Add 1000 Keys",
  "nodeAdded": "Added {{nodeName}}. {{migratedCount}} keys migrated.",
  "cannotRemoveLastNode": "Cannot remove the last remaining node.",
  "nodeRemoved": "Removed {{nodeName}}. {{migratedCount}} keys migrated.",

  "bloomfilter_title": "Bloom Filter Principle and Visualization",
  "bloomfilter_description": "Bloom filter is a space-efficient probabilistic data structure that is used to test whether an element is a member of a set. This page allows you to visualize the process of adding keys to the bloom filter and checking for key existence.",
  "predictedKeyCount": "Predicted key count (n)",
  "hashFunctionCount": "Number of hash functions (k)",
  "enterKey": "Enter key",
  "add10RandomKeys": "Add 10 random keys",
  "add100RandomKeys": "Add 100 random keys",
  "bitArraySize": "Bit array size (m): {{m}}",
  "bitsPerKey": "Bits per key: {{k}}",
  "currentKeyCount": "Current key count: {{count}}",
  "keysAtPosition": "Keys at position {{index}}:",
  "mayExist": "may exist in the set",
  "definitelyNotExist": "definitely does not exist in the set",

  "jumphash_title": "JumpHash",
  "jumphash_description": "Jumphash is a consistent hashing algorithm that provides a balance between the number of keys assigned to each node and the number of nodes. This page allows you to visualize the process of adding keys to the jump hash and checking for key existence.",
  "hashVisualization": "JumpHash Visualization",
  "jumpHash": "JumpHash",
  "murmurhash": "MurmurHash",
  "numberOfBuckets": "Number of Buckets",
  "add10Keys": "Add 10 Keys",

  "hanoitower_title": "Play Tower of Hanoi Game Online",
  "hanoitower_description": "Experience the classic Tower of Hanoi game in an interactive web application. Challenge yourself with adjustable disk numbers, choose between manual and automatic modes, and receive hints to solve the puzzle.",
  "numberOfDisks": "Number of Disks",
  "speed": "Speed (ms)",
  "mode": "Mode",
  "manual": "Manual",
  "auto": "Auto",
  "continue": "Continue",
  "getHint": "Get Hint",
  "movesCount": "Total: {{total}} / Minimum: {{minimum}}",
  "hintMessage": "Hint: Move from tower {{from}} to tower {{to}}",
  "noHintAvailable": "No hint available. You may have completed the game!",
  "moveSuccess": "Move successful!",
  "moveFailure": "Move failed. Larger disk cannot be placed on smaller disk.",
  "gameCompleted": "Congratulations! You have completed the Tower of Hanoi!",

  "binarysearchtree_title": "Binary Search Tree Visualization",
  "binarysearchtree_description": "Visualize the binary search tree algorithm. You can set the number of nodes and randomization method, insert, search, and delete nodes to understand how binary search trees work.",
  "nodeCount": "Node Count (1-50)",
  "initMethod": "Initialization Method",
  "initializeTree": "Initialize Tree",
  "enterNumber": "Enter a number",
  "initializedTree": "Initialized tree with {{count}} nodes using {{method}} method",
  "inserted_value": "Inserted {{value}}",
  "deleted_value": "Deleted {{value}}",
  "found_value": "Found {{value}}",
  "notFound_value": "{{value}} not found",
  "nodeExists": "Node {{value}} already exists",

  "chartrace_title": "Online BarChartRace Generation Tool",  
  "chartrace_description": "This page provides a handy dynamic racing chart maker that allows you to easily upload data, customize the time, type, and data columns, and then generate beautiful dynamic racing bars, which can also be exported as GIFs.",
  "uploadChartData": "Upload Chart Data",
  "jsonParseError": "JSON parsing error",
  "selectAllColumns": "Please select all necessary columns",
  "raceChart": "Race Chart",
  "dataPreview": "Data Preview",
  "type": "Type",
  "pleaseSelect": "Please select",
  "chartTitle": "Chart Title (optional)",
  "enterChartTitle": "Enter chart title",
  "generateChart": "Generate Chart",
  "exportGif": "Export GIF",
  "generatingGif": "Generating GIF...",
  "hint": "Hint",
  "clickHere": "Click to view",
  "personalGenerate": "Customize Generate",
  "dynamicChartsIndexTitle": "Important Data Dynamic Charts",
  "dynamicChartsIndexDoc": [
    "Here is a collection of important data charts that change over time. Each chart shows the key data trends in different fields, allowing you to intuitively understand the historical changes and future trends of various indicators.\n\n",
    "The charts cover multiple fields, including but not limited to:\n",
    "- Population statistics: Show the population growth trends of countries around the world\n",
    "- Economic indicators: Show the changes in GDP, inflation rate, etc.\n",
    "- Technology development: Show the evolution of technology indicators such as internet users, smartphone penetration rate, etc.\n",
    "- Social development: Show the trends of social progress indicators such as education level, medical care coverage, etc.\n\n",
    "Each chart uses a dynamic bar chart race to make the data change process more intuitive and vivid. Some public data also provides download links for further analysis and research.\n\n",
    "You can also use your own private data to generate customized dynamic charts."
  ],
  "ChartsIndexSearchPlaceholder": "Search title or intro",
  "ChartsIndexTableTitle": "Title",
  "ChartsIndexTableIntro": "Intro",
  "ChartsIndexTableDataSource": "Data Source",

  "sudoku_title": "Free Online Sudoku Game",
  "sudoku_description": "A classic Sudoku game that can be played online for free. It can generate random Sudoku questions, support the difficulty of selecting the question, support undo operation and prompt function.",

  "easy": "Easy",
  "medium": "Medium",
  "hard": "Hard",
  "expert": "Expert",
  "mistakes": "Mistakes",
  "selectDifficulty": "Select Difficulty",
  "newGame": "New Game",
  "undo": "Undo",
  "showHints": "Show Hints",
  "hideHints": "Hide Hints",
  "gameOver": "Game Over! You've made more than 3 mistakes.",
  "congratulations_sudo": "Congratulations! You've completed the Sudoku puzzle!",
  "cube_title": "3D Online Rubik's Cube",
  "cube_description": "Classic Rubik's Cube puzzle game, free to play online. Supports random scrambling, rotating the cube, sliding the cube, and getting hints for solving the cube. Open source, free to play Rubik's Cube online.",
  "scramble": "Scramble",

  "fileUpload_dragHere": "Drag files here, or ",
  "fileUpload_clickUpload": "click to upload",
  "fileUpload_sizeLimit": "Only {{accept}} files, max {{size}}MB",
  "gendocx_title": "Batch Generate Word From Excel",
  "gendocx_description": "Upload Excel files and Word templates, support batch generation of Word documents based on the content of the Excel file, and support downloading all and single downloads. The interface is beautiful and simple, and generates a large number of duplicate Word documents with one click.",
  "gendocx_uploadExcel": "Upload Excel File",
  "gendocx_uploadWord": "Upload Word Template",
  "gendocx_generate": "Generate Documents",
  "gendocx_generating": "Generating...",
  "gendocx_downloadAll": "Download All",
  "gendocx_download": "Download",
  "gendocx_status_pending": "Pending",
  "gendocx_status_failed": "Failed",
  "gendocx_status_generated": "Generated",
  "gendocx_pageSize": "Items per page:",
  "gendocx_items": "items",
  "gendocx_showing": "Showing",
  "gendocx_to": "to",
  "gendocx_total": "of",
  "gendocx_prevPage": "Previous",
  "gendocx_nextPage": "Next",
  "gendocx_error_noFiles": "Please upload Excel file and Word template first",
  "gendocx_error_worksheet": "Cannot read worksheet",
  "gendocx_error_generate": "Error generating documents: {{message}}",
  "gendocx_error_download": "Download failed, please try again",
  "gendocx_error_excel": "Failed to read Excel file",
  "gendocx_fileName": "File Name",
  "gendocx_status": "Status",
  "fileUpload_sizeExceeded": "File size cannot exceed {{size}}MB",

  "game_settings": "Game Settings",
  "board_size": "Board Size",
  "difficulty": "Difficulty",
  "difficulty_easy": "Easy",
  "difficulty_medium": "Medium",
  "difficulty_hard": "Hard",
  "manual_setup": "Manual Setup",
  "finish_editing": "Finish Editing",
  "new_game": "Random Reset",
  "solving": "Solving...",
  "solve": "Solve Hint",
  "next_move": "Next Move",
  "remaining_steps": "Remaining Steps",
  "puzzle_solved": "Puzzle solved in {{moves}} moves!",
  "unsolvable_puzzle_message": "Current layout is unsolvable! Please reset.\n\nFor {{size}} board, {{rule}}",
  "solvable_rule_odd": "the number of inversions must be even.",
  "solvable_rule_even": "the sum of inversions and empty row number (counting from bottom) must be odd.",
  "empty_space": "Space",
  "cancel": "Cancel",
  "moves": "Moves",
  "move_direction": "Move {{number}} Direction: {{direction}}",
  "direction_up": "up",
  "direction_down": "down",
  "direction_left": "left",
  "direction_right": "right",
  "sliding_title": "Free Online Sliding Puzzle",
  "sliding_description": "Classic digital sliding puzzle game, supports random generation of different difficulty levels and different sizes of starting positions, and supports obtaining intelligent solution plans!",

  "sokoban_title": "Free Online Sokoban Game",
  "sokoban_more_title": "Free Online Sokoban Levels Collection",
  "sokoban_description": "High difficulty Sokoban game, with various levels built-in, good operation experience, supports undo operation, see how far you can play?",
  "select_level": "Select Level",
  "current_level": "Current Level",
  "level": "Level",
  "sokoban_succmsg": "Congratulations on completing this level! Total moves: {{moves}}!",
  "best_record": "Best Record",
  "completed_at": "Completed At",
  "steps": "Steps",
  "exit_edit_mode": "Exit Edit Mode",
  "save_map": "Save Map",
  "create_level": "Create Game",
  "width": "Width",
  "height": "Height",
  "empty": "Empty",
  "player": "Player",
  "box": "Box",
  "target": "Target",
  "wall": "Wall",
  "floor": "Floor",
  "box on target": "Box on Target",
  "clear_map": "Clear Map",
  "invalid_map": "Invalid map, please make sure to create a valid map",
  "invalid_custom_map": "Not a valid custom map, please check if the map link is correct. A default level will be provided for you to modify.",
  "all": "All",
  "completed_levels": "Completed",
  "uncompleted_levels": "Uncompleted",
  "completion_status": "Status",
  "map_width": "Map Width",
  "map_height": "Map Height",
  "target_count": "Target Count",
  "all_levels": "All Game Maps",
  "previous": "Prev",
  "next": "Next",
  "minesweeper_title": "Free Online Minesweeper Game",
  "minesweeper_description": "Classic Minesweeper game, supports custom board size, custom mine count, undo operation. Supports marking mines and automatic mine clearing, so have a try?",
  "custom": "Custom",
  "restart": "Restart",
  "rows": "Rows",
  "columns": "Columns",
  "mines_count": "Mines Count",
  "apply_changes": "Apply Changes",
  "continue_game": "Continue Game",
  "auto_flag_mines": "Auto Flag Mines",
  "game_mode": "Game Mode",
  "classic_mode": "Classic",
  "hexagonal_mode": "Hexagonal",
  "completion_time": "Completion time: {{time}}",
  "victory": "Victory!",
  "minesweeper_fail": "Oh no! You hit a mine.\nBut you can click \"Continue Game\" to continue playing!",
  "flag_mode": "Flag Mode",
  "dig_mode": "Dig Mode",
  "theme": "Theme",
  "theme_classic": "Classic",
  "theme_dark": "Dark",
  "theme_pastel": "Pastel",
  "theme_green": "Green",
  "theme_yellow": "Yellow",
  "theme_ocean": "Ocean",
  "theme_sunset": "Sunset",

  "maze_title": "Free Online Maze Game and Maze Generation", 
  "maze_description": "Free Online maze game and maze generation, supports generating maze maps of square, circular, triangular, and hexagonal shapes. Follow the mouse to find the maze path, and can get the optimal path, download the maze, etc.",

  "maze_completion": "Congratulations on finding the exit!\nCompletion time: {{time}}\nVisited cells: {{visitedCells}}\nOptimal path length: {{optimalPathLength}}\nOptimal rate: {{optimality}}%\nCells per second: {{cellsPerSecond}}",
  "maze_shape": "Shape",
  "shapes_square": "Square",
  "shapes_triangle": "Triangle",
  "shapes_hexagon": "Hexagon",
  "shapes_circle": "Circle",
  "maze_algorithm": "Algorithm",
  "binaryTree": "Binary Tree",
  "sidewinder": "Sidewinder",
  "aldousBroder": "Aldous-Broder",
  "wilson": "Wilson",
  "huntAndKill": "Hunt and Kill",
  "recursiveBacktrack": "Recursive Backtrack",
  "kruskal": "Kruskal",
  "simplifiedPrims": "Simplified Prims",
  "truePrims": "True Prims",
  "ellers": "Eller",
  "exits_hardest": "Hardest Path",
  "exits_horizontal": "Horizontal Exits",
  "exits_vertical": "Vertical Exits",
  "maze_exit_config": "Exit Config",
  "layers": "Layers",
  "seed": "Seed",
  "generate_maze": "Generate Maze",
  "show_generation_process": "Show Generation Process",
  "generating_maze": "Generating...",
  "show_path": "Show Path",
  "hide_path": "Hide Path",
  "stop_game": "Stop Game",
  "maze_no_exits_hint": "Must generate a maze with exits",
  "current_seed": "Current Seed",
  "input_seed_hint": "No input for random seed",
  "elapsed_time": "Elapsed Time",
  "show_distances": "Show Distance Map",
  "hide_distances": "Hide Distance Map",
  "no_start_cell": "Maze has no start cell",
  "download_maze": "Download Maze",
  
  "chartrace": {
    "population-growth": {
      "title": "World Population Change (1800-2015)",
      "intro": "The world population has shown a continuous growth trend since 1800, with population growth accelerating significantly towards the end of the 19th century and the beginning of the 20th century. The Industrial Revolution in the late 19th century and the economic development it brought improved living conditions in most countries globally, leading to accelerated population growth. From the mid-20th century, developing countries such as China and India experienced rapid population growth. In contrast, high-income countries saw a gradual slowdown in population growth rates after entering the 20th century."
    },
    "income-growth": {
      "title": "Global Income Change (1800-2015)",
      "intro": "In 1800, the income in the United Kingdom was already several times higher than many countries, with the Industrial Revolution greatly widening the gap between high-income countries and others. Compared to industrialized nations, countries like India, China, and some African nations saw little change in income levels for most of the 19th century. The rapid development of emerging economies such as China and India in the late 20th and early 21st centuries has gradually brought these countries' income levels closer to those of high-income countries. Although global income has grown overall in the latter part of the 20th century, income disparities between high-income and low-income countries still persist. The change in global income has experienced a hugely unbalanced development, initially dominated by the income growth of developed countries driven by the Industrial Revolution, and later transformed by the rise of emerging economies, but significant global income disparities remain."
    },
    "china_gdp": {
      "title": "China GDP Change (2004-2023)",
      "intro": "China's economy has experienced significant growth over the past 20 years. Taking Guangdong Province as an example, its GDP increased from 1,865.83 billion yuan in 2004 to 13,567.32 billion yuan in 2023, growing approximately 6.3 times. By comparing growth rates across different regions and periods, we can observe an overall trend of slowing economic growth. For instance, Guangdong Province's average annual growth rate was about 14.4% during 2004-2013, while it decreased to about 8.0% during 2014-2023. This indicates that China's economy is transitioning from a high-speed growth phase to a high-quality development phase. Beijing and Shanghai, as municipalities directly under the central government, have relatively high total GDP, which may reflect their status as centers for finance, technology, and service industries. Even in the face of global economic challenges (such as in 2020), most regions maintained positive growth, demonstrating the resilience of China's economy."
    },
    "china_population": {
      "title": "China Population Change (2004-2023)",
      "intro": "The analysis reveals a clear divergence in population trends across China's provinces. Eastern coastal regions such as Beijing, Guangdong, and Shanghai show significant population growth, with average increases ranging from 1.5% to 2%. These areas attract large numbers of migrants due to their economic prosperity and abundant job opportunities. In contrast, northeastern provinces like Heilongjiang and Jilin are experiencing negative population growth, with Heilongjiang seeing the most significant decrease (-1.15%). These regions are facing industrial decline and population outflow. Some central and western provinces, such as Guizhou and Gansu, are also seeing slower population growth. Future demographic changes will likely focus on the relationship between urbanization and regional economic disparities. Eastern economic centers may continue to attract populations, while provinces with less diversified economies may struggle with population loss."
    },
    "china_income": {
      "title": "China Income Change (2004-2023)",
      "intro": "The analysis reveals significant regional disparities in fiscal revenues across Chinese provinces, with coastal provinces like Guangdong and Jiangsu far outperforming inland provinces such as Tibet and Qinghai, reflecting uneven economic development. Nevertheless, most provinces showed a continuous growth trend from 2004 to 2023, demonstrating China's overall economic progress. However, recent years have seen a general slowdown in growth rates, possibly reflecting the impact of economic transformation and structural adjustments. Notably, some provinces like Guizhou and Tibet have experienced rapid fiscal revenue growth, likely tied to national regional development strategies and support policies. Meanwhile, provinces with diversified economic structures, such as Guangdong and Zhejiang, have shown stronger resilience to economic fluctuations, highlighting the importance of industrial diversity for fiscal stability."
    },
    "china_outcome": {
      "title": "China Expenditure Change (2004-2023)",
      "intro": "The analysis reveals a continuous growth trend in fiscal expenditure across Chinese provinces, reflecting the government's increasing investment in people's livelihoods and economic development. However, there are significant regional differences in the scale and growth rate of expenditures, with economically developed eastern coastal provinces like Guangdong and Jiangsu far outspending western provinces like Qinghai and Ningxia, highlighting the vast disparity in fiscal strength. Notably, some central and western provinces such as Sichuan and Guizhou have seen faster expenditure growth, possibly linked to national strategies for balanced regional development. "
    }
  },

  "seo": {
    "index": {
      "title": "AI Gallery",
      "description": "Claude3.5 provides online visualization tools for algorithms, data structures, and games. Explore interactive visualizations of trie, linked list, stack, rate limiting, pathfinding, hash table, and more.",
      "keywords": "Claude3.5, online visualization tools, AI Gallery"
    },
    "blog": {
      "title": "The Blogs About How I Use AI",
      "description": "This is the index page of a series of articles, sharing how I use Cursot and Claude3.5 to write code and generate various fun websites. It includes various classic and interesting games, visualizations of common algorithms, and many useful tools.",
      "keywords": "AI write code blog, Claude3.5 blog, Cursor coding blog"
    },  
    "algorithms": {
      "title": "Algorithms Visualization",
      "description": "This page provides visualizations of various algorithms, including trie, linked list, stack, rate limiting, path findind and hash table.",
      "keywords": "Algorithms visualization, data structures, online visualization"
    },
    "games": {
      "title": "Open Source React Games",
      "description": "Provides classic games such as Gomoku, Chinese Chess, Tetris, and more. Written in React, these games are open source and can be played online.",
      "keywords": "gomoku, chinese chess, tetris, snake, 2048, source code game, react games, gpt4 games, claude3.5 games"
    },
    "tools": {
      "title": "Tools",
      "description": "This page provides various tools.",
      "keywords": "usefull web tools, online tools"
    },
    "linkedlist": {
      "title": "Linked List Visualization",
      "description": "Interactive linked list visualization tool. Explore dynamic animations of linked list operations including insertion, deletion, and traversal. Ideal for students, developers, and algorithm enthusiasts to understand data structure concepts visually.",
      "keywords": "linked list visualization, linked list operations, linked list animation"
    },
    "hashtable": {
      "title": "Visual Demonstration of Hash Table Operations",
      "description": "Hash tables are used to efficiently store key-value pairs. This page uses a grid layout to simulate the internal structure of a hash table, visually demonstrating the basic operations of a hash table, including insertion, deletion, and search. It supports selecting different hash functions and setting the size of the hash table, helping to understand the working principle of hash tables.",
      "keywords": "Hash table visualization, hash table operations, hash table data structure, visualizing hash table operations作"
    },
    "astar": {
      "title": "Astar Visualization",
      "description": "Learn and understand the A* pathfinding algorithm through interactive visualization. Explore how A* works and enhance your algorithm knowledge. Source code is available.",
      "keywords": "A* algorithm, A-star algorithm, pathfinding algorithm, algorithm visualization, learn A* algorithm, algorithm education"
    },
    "bfs_path": {
      "title": "BFS Visualization",
      "description": "Learn and understand the BFS pathfinding algorithm through interactive visualization. Explore how breadth-first search works and enhance your algorithm knowledge. Source code is available",
      "keywords": "BFS algorithm, breadth-first search, pathfinding algorithm, algorithm visualization, learn BFS, algorithm education"
    },
    "stack": {
      "title": "Stack Data Structure: Principles and Interactive Visualization Tutorial",
      "description": "Explore interactive Stack Visualization tool designed to help you understand and visualize the basic operations of a stack data structure in real-time. Perfect for students, educators, and programming enthusiasts looking to enhance their understanding of stack operations such as push, pop, and peek.",
      "keywords": "stack visualization, stack data structure, visualize stack operations, stack push, stack pop, stack peek, real-time stack visualization, stack tutorial, learn stack, data structure visualization"
    },
    "dijkstra": {
      "title": "Dijkstra Shortest Path Algorithm Visualization",
      "description": "Dijkstra's algorithm is a classic algorithm for computing the shortest path from a single source in a weighted graph. This page describes the algorithm's principles and implementation steps, and provides interactive tools that allow you to set the graph's vertices and edges, weights, and visually observe the algorithm's execution process.",
      "keywords": "Dijkstra Algorithm Visualization, Shortest Path Algorithm"
    },
    "trie": {
      "title": "Trie Visualization",
      "description": "Interactive visualization of prefix tree operations. Explore trie data structure animations for insert, search and delete. Learn algorithmic concepts through step-by-step visual explanations.",
      "keywords": "prefix tree, trie, data structure, algorithm visualization, interactive animation, computer science education, coding tutorial"
    },
    "heap": {
      "title": "Heap Visualization",
      "description": "Learn and understand the heap algorithm through interactive visualization. Explore how heap sort works and enhance your algorithm knowledge. Source code is available.",
      "keywords": "heap algorithm, heap sort, algorithm visualization, learn heap sort, data structures, algorithm education"
    },
    "ratelimit": {
      "title": "Window Rate Limiter",
      "description": "Explore interactive visualizations of fixed window and sliding window rate limiting techniques. Understand how these crucial API traffic management methods work in real-time. ",
      "keywords": "rate limiting, fixed window, sliding window, API traffic management, request throttling, rate limit visualization"
    },
    "tokenbucket": {
      "title": "Token Bucket Visualization",
      "description": "Explore an interactive visualization of the Token Bucket algorithm, a key technique for network traffic shaping and rate limiting. Learn how this algorithm manages data flow, prevents system overload, and ensures fair resource allocation in computer networks and APIs",
      "keywords": "Token Bucket algorithm, rate limiting, algorithm visualization, interactive learning"
    },
    "game2048": {
      "title": "Free 2048 Game Online",
      "description": "Play the classic 2048 game online! Join the numbers and get to the 2048 tile to win. Start playing now and test your puzzle solving skills.",
      "keywords": "2048, classic 2048 game, number puzzle game, play 2048 online, claude3.5, react 2048 game"
    },
    "chess": {
      "title": "Free Chinese Chess Online",
      "description": "Master the art of Xiangqi with our online Chinese Chess game. ",
      "keywords": "Chinese Chess, Xiangqi online, free Xiangqi game, play Chinese Chess, online Xiangqi"
    },
    "tetris": {
      "title": "Free Tetris Game Online",
      "description": "Experience the classic Tetris game online. Challenge your reflexes and strategic thinking. No download required. Start playing Tetris now and enjoy endless fun.",
      "keywords": "Tetris, play Tetris online, free Tetris game, classic Tetris, online puzzle games, Tetris strategy"
    },
    "gomoku": {
      "title": "Free Gomoku Game Online",
      "description": "Enjoy the classic Gomoku game online. Challenge friends and improve your strategy skills. No download needed. Start your Gomoku battle now!",
      "keywords": "Gomoku, play Gomoku online, free Gomoku game, Gomoku strategy, Gomoku Claude write, online board games"
    },
    "snake": {
      "title": "Free Snake Game Online",
      "description": "Enjoy the classic free snake game online. Control the snake to eat food, and grow longer. Avoid hitting the wall or the snake's body.. No download needed.",
      "keywords": "Snake, Play snake online, Free snake game, Snake eat food, Snake Claude write, Online snake game"
    },
    "sudoku": {
      "title": "Free Sudoku Game Online",
      "description": "Open-source React Sudoku game. Play Sudoku online and challenge your logical thinking! Offers multiple difficulty levels, from easy to expert, suitable for players of all skill levels. Features include real-time error checking, a hint system, and a timer. Unique keyboard and mouse input support ensures a smooth gaming experience.",
      "keywords": "Sudoku, Play sudoku online, Free sudoku game, Sudoku strategy, Sudoku Claude write, Online sudoku game"
    },
    "chartrace": {
      "title": "Online BarChartRace Generation Tool",
      "description": "BarChartRace is a dynamic bar chart that shows how data changes over time. This page allows you to customize data and time, generate dynamic bar charts, and supports a large number of custom settings.",
      "keywords": "BarChartRace, data visualization, data visualization tool, CSV to BarChartRace, Excel to BarChartRace",
      "dynamicCharts": {
        "title": "Dynamic Charts of Key Data",
        "description": "This collection features a series of important indicator data that change over time. Each chart showcases key data trends from different fields, allowing you to visually understand the historical changes and future directions of various indicators.",
        "keywords": "dynamic bar charts,data visualization,historical indicator data changes"
      },
      "population-growth": {
        "title": "World Population Growth",
        "description": "Since 1800, the world population has undergone a phase of rapid growth, particularly the 'population explosion' phenomenon in the mid-20th century, which quickly brought the global population close to today's scale of several billion. The rapid growth in Asia has significantly increased its share in the global population distribution.",
        "keywords": "World Population Growth, Population Statistics, Data Visualization, BarChartRace"
      },
      "income-growth": {
        "title": "World Income Growth",
        "description": "The change in global income has experienced a hugely unbalanced development. Initially, income growth was dominated by developed countries driven by the Industrial Revolution. Later, the rise of emerging economies brought about a transformation in the income landscape, but significant global income disparities still persist. There are notable differences in income growth rates across different regions.",
        "keywords": "World Income Growth, Income Statistics, Data Visualization, BarChartRace"
      },
      "china_gdp": {
        "title": "China GDP Growth",
        "description": "China's GDP growth from 2004 to 2023: Visualize the economic transformation across provinces. See how growth rates evolved, from rapid expansion to a focus on quality development. Explore regional differences, the impact of major cities, and China's economic resilience in the face of global challenges.",
        "keywords": "China GDP Growth, GDP Statistics, Data Visualization, BarChartRace"
      },
      "china_population": {
        "title": "China Population Growth",
        "description": "The population trends in China's provinces reveal significant regional disparities. While coastal regions like Beijing, Guangdong, and Shanghai continue to see population growth, northeastern provinces such as Heilongjiang and Jilin are experiencing population decline. Urbanization and economic development gaps will likely influence future demographic shifts. ​",
        "keywords": "China Population Growth, Population Statistics, Data Visualization, BarChartRace"
      },
      "china_income": {
        "title": "China Province Income Change",
        "description": "This analysis employs linear dynamic charts and animated bar graphs to vividly illustrate the fiscal revenue trends of Chinese provinces from 2004 to 2023. Through these intuitive visualization tools, we clearly present significant regional economic disparities, sustained growth patterns, a slowdown in growth rates, the impact of regional development policies, and the influence of economic diversification on fiscal revenues. The dynamic charts not only display static data but also showcase the dynamic process of fiscal revenue changes, providing readers with a deeper and more comprehensive understanding. ",
        "keywords": "China Province Income Growth, Fiscal Revenue, Data Visualization, BarChartRace"
      },
      "china_outcome": {
        "title": "China Province Expenditure Change",
        "description": "This analysis employs linear dynamic charts and animated bar graphs to vividly illustrate the fiscal expenditure trends across Chinese provinces from 2004 to 2023. Through these intuitive visualization tools, we clearly present the continuous growth in fiscal spending, regional disparities, policy impacts, and economic development characteristics. The dynamic charts not only display static data but also showcase the evolving process of fiscal expenditures, allowing readers to visually grasp the changes in fiscal strength and policy orientations across provinces. ",
        "keywords": "China Province Expenditure Growth, Fiscal Expenditure, Data Visualization, BarChartRace"
      }
    },
    "skiplist": {
      "title": "Skip List Visualization",
      "description": "Interactive visualization of skip list operations. Explore skip list data structure animations for insert, search and delete. Learn algorithmic concepts through step-by-step visual explanations.",
      "keywords": "skip list, data structure, algorithm visualization, interactive animation, computer science education, coding tutorial"
    },
    "subtitles": {
      "title": "Image Subtitle Stitching Generator",
      "description": "Easily add beautiful captions to your pictures. You can customize the font, size, color, and position of the subtitle. You can also add gradient backgrounds and special effects. No software download required, process images in your local browser, free and safe.",
      "keywords": "Image subtitle tool, Online subtitle maker, video subtitle stitching generator"
    },
    "dpcoin":{
      "title": "Dynamic Programming Coin Change Visualization",
      "description": "Explore the coin change problem of dynamic programming algorithms. The idea of dynamic programming can disassemble molecular problems and use the solutions of sub-problems to solve complex problems. This page describes the ideas and solutions of dynamic programming, and uses visual tools to help you understand the process of solving the coin change problem.",
      "keywords": "Dynamic programming detailed explanation, coin change visualization, dynamic programming coin change"
    },
    "hashring": {
      "title": "Interactive Consistent HashRing Visualization",
      "description": "Explore and understand consistent hashing with our interactive visualizer. Perfect for developers, students, and distributed systems enthusiasts. Simulate node addition, removal, and key distribution in real-time.",
      "keywords": "consistent hashing, load balancing, algorithm visualization, hash rings, virtual nodes, hash visualization"
    },
    "bloomfilter": {
      "title": "Bloom Filter Visualization",
      "description": "Dynamic and user-friendly Bloom filter demonstration page, intuitively displaying the insertion and search operations of the Bloom filter, helping to understand the working principle of the Bloom filter. Uses a grid to simulate a bit array, supports setting various hash functions, supports setting various key quantities, making it convenient to understand the working principle of the Bloom filter.",
      "keywords": "Bloom filter, bloom filter operation, bloom filter visualization"
    },
    "jumphash": {
      "title": "JumpHash Visualization",
      "description": "Explore the JumpHash algorithm through interactive visualization. Learn how JumpHash works and understand its applications in real-time. Source code is available.",
      "keywords": "JumpHash, algorithm visualization, Consistent hash, JumpHash visualization"
    },
    "hanoitower": {
      "title": "Hanoi Tower",
      "description": "Experience the classic Tower of Hanoi puzzle in an interactive web application. Challenge yourself with adjustable disk numbers, choose between manual and automatic modes, and receive hints to solve the puzzle. ",
      "keywords": "Tower of Hanoi, Hanoi Tower, Tower of Hanoi online, Tower of Hanoi puzzle"
    },
    "binarysearchtree": {
      "title": "Binary Search Tree Visualization",
      "description": "Explore the binary search tree algorithm with interactive visualizations. You can set the number of nodes and initialization methods, and then visually see the process of inserting, searching, and deleting nodes, which can deepen your understanding of the working principle of the binary search tree.",
      "keywords": "Binary Search Tree, algorithm visualization, binary search tree operation, binary search tree visualization"
    },
    "cube": {
      "title": "Free 3D Cube Game Online",
      "description": "Classic Rubik's Cube puzzle game, play 3D Rubik's Cube online for free. Supports random scrambling, rotating view, sliding Rubik's Cube, and getting Rubik's Cube playing tips. Open source code, play Rubik's Cube online for free",
      "keywords": "3D Cube, play 3D Cube online, Free 3D Cube game, 3D Cube strategy, 3D Cube Claude write"
    },
    "gendocx": {
      "title": "Batch Online Word Document Generator",
      "description": "Upload Excel files and Word templates, generate Word documents in batch, and download all or individually. Beautiful interface, simple operation, batch generation of large number of Word documents.",
      "keywords": "Word document generator, Excel to Word, batch Word generation, Word document download"
    },
    "sliding": {
      "title": "Online Digital Sliding Puzzle",
      "description": "A classic free online digital puzzle game. It supports random generation of starting layouts of different difficulty and size, supports customizing the numbers of each grid, and supports obtaining intelligent solutions! The code is open source and can be played online for free!",
      "keywords": "Digital sliding puzzle, Online digital sliding puzzle, Free digital sliding puzzle"
    },
    "sokoban": {
      "title": "Free Online Sokoban Game",
      "description": "A high-difficulty Sokoban game with levels of various difficulties, also supports customizing game levels and sharing with friends to play together. Use your brain to push the box around the obstacle and to the designated location. Puzzle games, suitable for all ages, exercise thinking skills.",
      "keywords": "Free Online Sokoban, Customize Sokoban, Sokoban Hardest Level"
    },
    "sokoban_more": {
      "title": "Many Online Sokoban Game Levels",
      "description": "Sokoban Game Levels, contains various levels, with preview images, can quickly select different levels. Supports filtering uncompleted levels, filtering different map sizes",
      "keywords": "Online Sokoban Game Levels, Sokoban Preview, Select Sokoban Level"
    },
    "minesweeper": {
      "title": "Free Online Minesweeper Game",
      "description": "Powerful classic minesweeper game with a high degree of customization, convenience and speed. Support custom checkerboard size and number of mines, support right-click to mark mines, double-click automatic demining and other operations.",
      "keywords": "Minesweeper, Free Minesweeper Game, Online Minesweeper"
    },
    "maze": {
      "title": "Various types of mazes are generated online for free, and the maze is supported to find paths",
      "description": "This page supports various types of online maze generation, and supports the generation of square, circle, triangle, and honeycomb maze maps. It also supports playing mazes online and finding maze paths, which can be found by just moving the mouse. It also supports hinting at the optimal path of the maze, downloading the maze, etc.",
      "keywords": "Online Maze Generator, Maze Path Finding, Maze Game Online, Online Maze Download"
    }
  }
}