diff --git a/.github/workflows/appengine_deploy.yml b/.github/workflows/appengine_deploy.yml index beb74e9ff..72cee90bf 100644 --- a/.github/workflows/appengine_deploy.yml +++ b/.github/workflows/appengine_deploy.yml @@ -24,7 +24,7 @@ jobs: npm run prepareDemos - name: Upload - uses: actions/upload-artifact@v3 + uses: actions/upload-artifact@v4 with: name: appengine_files path: _deploy/ @@ -36,13 +36,13 @@ jobs: needs: prepare steps: - name: Download prepared files - uses: actions/download-artifact@v3 + uses: actions/download-artifact@v4 with: name: appengine_files path: _deploy/ - name: Deploy to App Engine - uses: google-github-actions/deploy-appengine@v1.2.7 + uses: google-github-actions/deploy-appengine@v2.0.0 # For parameters see: # https://github.com/google-github-actions/deploy-appengine#inputs with: diff --git a/appengine/app.yaml b/appengine/app.yaml index 1778f2b93..9c93fb687 100644 --- a/appengine/app.yaml +++ b/appengine/app.yaml @@ -1,4 +1,4 @@ -runtime: python37 +runtime: python312 handlers: # Redirect obsolete URLs. diff --git a/core/block_dragger.ts b/core/block_dragger.ts index 78c1381ae..e6be29391 100644 --- a/core/block_dragger.ts +++ b/core/block_dragger.ts @@ -21,7 +21,6 @@ import * as common from './common.js'; import type {BlockMove} from './events/events_block_move.js'; import * as eventUtils from './events/utils.js'; import type {Icon} from './icons/icon.js'; -import {InsertionMarkerManager} from './insertion_marker_manager.js'; import type {IBlockDragger} from './interfaces/i_block_dragger.js'; import type {IDragTarget} from './interfaces/i_drag_target.js'; import * as registry from './registry.js'; @@ -31,6 +30,26 @@ import type {WorkspaceSvg} from './workspace_svg.js'; import {hasBubble} from './interfaces/i_has_bubble.js'; import * as deprecation from './utils/deprecation.js'; import * as layers from './layers.js'; +import {ConnectionType, IConnectionPreviewer} from './blockly.js'; +import {RenderedConnection} from './rendered_connection.js'; +import {config} from './config.js'; +import {ComponentManager} from './component_manager.js'; +import {IDeleteArea} from './interfaces/i_delete_area.js'; +import {Connection} from './connection.js'; +import {Block} from './block.js'; +import {finishQueuedRenders} from './render_management.js'; + +/** Represents a nearby valid connection. */ +interface ConnectionCandidate { + /** A connection on the dragging stack that is compatible with neighbour. */ + local: RenderedConnection; + + /** A nearby connection that is compatible with local. */ + neighbour: RenderedConnection; + + /** The distance between the local connection and the neighbour connection. */ + distance: number; +} /** * Class for a block dragger. It moves blocks around the workspace when they @@ -39,7 +58,8 @@ import * as layers from './layers.js'; export class BlockDragger implements IBlockDragger { /** The top block in the stack that is being dragged. */ protected draggingBlock_: BlockSvg; - protected draggedConnectionManager_: InsertionMarkerManager; + + protected connectionPreviewer: IConnectionPreviewer; /** The workspace on which the block is being dragged. */ protected workspace_: WorkspaceSvg; @@ -47,6 +67,8 @@ export class BlockDragger implements IBlockDragger { /** Which drag area the mouse pointer is over, if any. */ private dragTarget_: IDragTarget | null = null; + private connectionCandidate: ConnectionCandidate | null = null; + /** Whether the block would be deleted if dropped immediately. */ protected wouldDeleteBlock_ = false; protected startXY_: Coordinate; @@ -63,14 +85,14 @@ export class BlockDragger implements IBlockDragger { */ constructor(block: BlockSvg, workspace: WorkspaceSvg) { this.draggingBlock_ = block; - - /** Object that keeps track of connections on dragged blocks. */ - this.draggedConnectionManager_ = new InsertionMarkerManager( - this.draggingBlock_, - ); - this.workspace_ = workspace; + const previewerConstructor = registry.getClassFromOptions( + registry.Type.CONNECTION_PREVIEWER, + this.workspace_.options, + ); + this.connectionPreviewer = new previewerConstructor!(block); + /** * The location of the top left corner of the dragging block at the * beginning of the drag in workspace coordinates. @@ -87,9 +109,7 @@ export class BlockDragger implements IBlockDragger { */ dispose() { this.dragIconData_.length = 0; - if (this.draggedConnectionManager_) { - this.draggedConnectionManager_.dispose(); - } + this.connectionPreviewer.dispose(); } /** @@ -155,7 +175,6 @@ export class BlockDragger implements IBlockDragger { this.draggingBlock_.translate(newLoc.x, newLoc.y); blockAnimation.disconnectUiEffect(this.draggingBlock_); - this.draggedConnectionManager_.updateAvailableConnections(); } /** Fire a UI event at the start of a block drag. */ @@ -173,32 +192,178 @@ export class BlockDragger implements IBlockDragger { * display accordingly. * * @param e The most recent move event. - * @param currentDragDeltaXY How far the pointer has moved from the position + * @param delta How far the pointer has moved from the position * at the start of the drag, in pixel units. */ - drag(e: PointerEvent, currentDragDeltaXY: Coordinate) { - const delta = this.pixelsToWorkspaceUnits_(currentDragDeltaXY); + drag(e: PointerEvent, delta: Coordinate) { + const block = this.draggingBlock_; + this.moveBlock(block, delta); + this.updateDragTargets(e, block); + this.wouldDeleteBlock_ = this.wouldDeleteBlock(e, block, delta); + this.updateCursorDuringBlockDrag_(); + this.updateConnectionPreview(block, delta); + } + + private moveBlock(draggingBlock: BlockSvg, dragDelta: Coordinate) { + const delta = this.pixelsToWorkspaceUnits_(dragDelta); const newLoc = Coordinate.sum(this.startXY_, delta); - this.draggingBlock_.moveDuringDrag(newLoc); + draggingBlock.moveDuringDrag(newLoc); + } - const oldDragTarget = this.dragTarget_; - this.dragTarget_ = this.workspace_.getDragTarget(e); + private updateDragTargets(e: PointerEvent, draggingBlock: BlockSvg) { + const newDragTarget = this.workspace_.getDragTarget(e); + if (this.dragTarget_ !== newDragTarget) { + this.dragTarget_?.onDragExit(draggingBlock); + newDragTarget?.onDragEnter(draggingBlock); + } + newDragTarget?.onDragOver(draggingBlock); + this.dragTarget_ = newDragTarget; + } - this.draggedConnectionManager_.update(delta, this.dragTarget_); - const oldWouldDeleteBlock = this.wouldDeleteBlock_; - this.wouldDeleteBlock_ = this.draggedConnectionManager_.wouldDeleteBlock; - if (oldWouldDeleteBlock !== this.wouldDeleteBlock_) { - // Prevent unnecessary add/remove class calls. - this.updateCursorDuringBlockDrag_(); + /** + * Returns true if we would delete the block if it was dropped at this time, + * false otherwise. + */ + private wouldDeleteBlock( + e: PointerEvent, + draggingBlock: BlockSvg, + delta: Coordinate, + ): boolean { + const dragTarget = this.workspace_.getDragTarget(e); + if (!dragTarget) return false; + + const componentManager = this.workspace_.getComponentManager(); + const isDeleteArea = componentManager.hasCapability( + dragTarget.id, + ComponentManager.Capability.DELETE_AREA, + ); + if (!isDeleteArea) return false; + + return (dragTarget as IDeleteArea).wouldDelete( + draggingBlock, + !!this.getConnectionCandidate(draggingBlock, delta), + ); + } + + private updateConnectionPreview(draggingBlock: BlockSvg, delta: Coordinate) { + const currCandidate = this.connectionCandidate; + const newCandidate = this.getConnectionCandidate(draggingBlock, delta); + if (!newCandidate) { + this.connectionPreviewer.hidePreview(); + this.connectionCandidate = null; + return; + } + const candidate = + currCandidate && + this.currCandidateIsBetter(currCandidate, delta, newCandidate) + ? currCandidate + : newCandidate; + this.connectionCandidate = candidate; + const {local, neighbour} = candidate; + if ( + (local.type === ConnectionType.OUTPUT_VALUE || + local.type === ConnectionType.PREVIOUS_STATEMENT) && + neighbour.isConnected() && + !neighbour.targetBlock()!.isInsertionMarker() && + !this.orphanCanConnectAtEnd( + draggingBlock, + neighbour.targetBlock()!, + local.type, + ) + ) { + this.connectionPreviewer.previewReplacement( + local, + neighbour, + neighbour.targetBlock()!, + ); + return; + } + this.connectionPreviewer.previewConnection(local, neighbour); + } + + /** + * Returns true if the given orphan block can connect at the end of the + * top block's stack or row, false otherwise. + */ + private orphanCanConnectAtEnd( + topBlock: BlockSvg, + orphanBlock: BlockSvg, + localType: number, + ): boolean { + const orphanConnection = + localType === ConnectionType.OUTPUT_VALUE + ? orphanBlock.outputConnection + : orphanBlock.previousConnection; + return !!Connection.getConnectionForOrphanedConnection( + topBlock as Block, + orphanConnection as Connection, + ); + } + + /** + * Returns true if the current candidate is better than the new candidate. + * + * We slightly prefer the current candidate even if it is farther away. + */ + private currCandidateIsBetter( + currCandiate: ConnectionCandidate, + delta: Coordinate, + newCandidate: ConnectionCandidate, + ): boolean { + const {local: currLocal, neighbour: currNeighbour} = currCandiate; + const localPos = new Coordinate(currLocal.x, currLocal.y); + const neighbourPos = new Coordinate(currNeighbour.x, currNeighbour.y); + const distance = Coordinate.distance( + Coordinate.sum(localPos, delta), + neighbourPos, + ); + return ( + newCandidate.distance > distance - config.currentConnectionPreference + ); + } + + /** + * Returns the closest valid candidate connection, if one can be found. + * + * Valid neighbour connections are within the configured start radius, with a + * compatible type (input, output, etc) and connection check. + */ + private getConnectionCandidate( + draggingBlock: BlockSvg, + delta: Coordinate, + ): ConnectionCandidate | null { + const localConns = this.getLocalConnections(draggingBlock); + let radius = config.snapRadius; + let candidate = null; + + for (const conn of localConns) { + const {connection: neighbour, radius: rad} = conn.closest(radius, delta); + if (neighbour) { + candidate = { + local: conn, + neighbour: neighbour, + distance: rad, + }; + radius = rad; + } } - // Call drag enter/exit/over after wouldDeleteBlock is called in - // InsertionMarkerManager.update. - if (this.dragTarget_ !== oldDragTarget) { - oldDragTarget && oldDragTarget.onDragExit(this.draggingBlock_); - this.dragTarget_ && this.dragTarget_.onDragEnter(this.draggingBlock_); + return candidate; + } + + /** + * Returns all of the connections we might connect to blocks on the workspace. + * + * Includes any connections on the dragging block, and any last next + * connection on the stack (if one exists). + */ + private getLocalConnections(draggingBlock: BlockSvg): RenderedConnection[] { + const available = draggingBlock.getConnections_(false); + const lastOnStack = draggingBlock.lastConnectionInStack(true); + if (lastOnStack && lastOnStack !== draggingBlock.nextConnection) { + available.push(lastOnStack); } - this.dragTarget_ && this.dragTarget_.onDragOver(this.draggingBlock_); + return available; } /** @@ -216,6 +381,8 @@ export class BlockDragger implements IBlockDragger { dom.stopTextWidthCache(); blockAnimation.disconnectUiStop(); + this.connectionPreviewer.hidePreview(); + this.connectionPreviewer.dispose(); const preventMove = !!this.dragTarget_ && @@ -298,15 +465,33 @@ export class BlockDragger implements IBlockDragger { */ protected updateBlockAfterMove_() { this.fireMoveEvent_(); - if (this.draggedConnectionManager_.wouldConnectBlock()) { + if (this.connectionCandidate) { // Applying connections also rerenders the relevant blocks. - this.draggedConnectionManager_.applyConnections(); + this.applyConnections(this.connectionCandidate); } else { this.draggingBlock_.queueRender(); } this.draggingBlock_.scheduleSnapAndBump(); } + private applyConnections(candidate: ConnectionCandidate) { + const {local, neighbour} = candidate; + local.connect(neighbour); + // TODO: We can remove this `rendered` check when we reconcile with v11. + if (this.draggingBlock_.rendered) { + const inferiorConnection = local.isSuperior() ? neighbour : local; + const rootBlock = this.draggingBlock_.getRootBlock(); + + finishQueuedRenders().then(() => { + blockAnimation.connectionUiEffect(inferiorConnection.getSourceBlock()); + // bringToFront is incredibly expensive. Delay until the next frame. + setTimeout(() => { + rootBlock.bringToFront(); + }, 0); + }); + } + } + /** Fire a UI event at the end of a block drag. */ protected fireDragEndEvent_() { const event = new (eventUtils.get(eventUtils.BLOCK_DRAG))( @@ -415,14 +600,9 @@ export class BlockDragger implements IBlockDragger { * @returns A possibly empty list of insertion marker blocks. */ getInsertionMarkers(): BlockSvg[] { - // No insertion markers with the old style of dragged connection managers. - if ( - this.draggedConnectionManager_ && - this.draggedConnectionManager_.getInsertionMarkers - ) { - return this.draggedConnectionManager_.getInsertionMarkers(); - } - return []; + return this.workspace_ + .getAllBlocks() + .filter((block) => block.isInsertionMarker()); } } diff --git a/core/block_svg.ts b/core/block_svg.ts index 2655642d7..f8f0c02ff 100644 --- a/core/block_svg.ts +++ b/core/block_svg.ts @@ -1722,7 +1722,8 @@ export class BlockSvg * @internal */ fadeForReplacement(add: boolean) { - this.pathObject.updateReplacementFade(add); + // TODO (7204): Remove these internal methods. + (this.pathObject as AnyDuringMigration).updateReplacementFade(add); } /** @@ -1734,6 +1735,10 @@ export class BlockSvg * @internal */ highlightShapeForInput(conn: RenderedConnection, add: boolean) { - this.pathObject.updateShapeForInputHighlight(conn, add); + // TODO (7204): Remove these internal methods. + (this.pathObject as AnyDuringMigration).updateShapeForInputHighlight( + conn, + add, + ); } } diff --git a/core/blockly.ts b/core/blockly.ts index 00c10f69e..92d4a6740 100644 --- a/core/blockly.ts +++ b/core/blockly.ts @@ -128,6 +128,7 @@ import {Input} from './inputs/input.js'; import {inputTypes} from './inputs/input_types.js'; import * as inputs from './inputs.js'; import {InsertionMarkerManager} from './insertion_marker_manager.js'; +import {InsertionMarkerPreviewer} from './connection_previewers/insertion_marker_previewer.js'; import {IASTNodeLocation} from './interfaces/i_ast_node_location.js'; import {IASTNodeLocationSvg} from './interfaces/i_ast_node_location_svg.js'; import {IASTNodeLocationWithBlock} from './interfaces/i_ast_node_location_with_block.js'; @@ -138,6 +139,7 @@ import {IBubble} from './interfaces/i_bubble.js'; import {ICollapsibleToolboxItem} from './interfaces/i_collapsible_toolbox_item.js'; import {IComponent} from './interfaces/i_component.js'; import {IConnectionChecker} from './interfaces/i_connection_checker.js'; +import {IConnectionPreviewer} from './interfaces/i_connection_previewer.js'; import {IContextMenu} from './interfaces/i_contextmenu.js'; import {ICopyable, isCopyable} from './interfaces/i_copyable.js'; import {IDeletable} from './interfaces/i_deletable.js'; @@ -589,6 +591,7 @@ export {IBubble}; export {ICollapsibleToolboxItem}; export {IComponent}; export {IConnectionChecker}; +export {IConnectionPreviewer}; export {IContextMenu}; export {icons}; export {ICopyable, isCopyable}; @@ -605,6 +608,7 @@ export {IMovable}; export {Input}; export {inputs}; export {InsertionMarkerManager}; +export {InsertionMarkerPreviewer}; export {IObservable, isObservable}; export {IPaster, isPaster}; export {IPositionable}; diff --git a/core/config.ts b/core/config.ts index ed253e9dd..a6642c266 100644 --- a/core/config.ts +++ b/core/config.ts @@ -48,6 +48,7 @@ export const config: Config = { * Maximum misalignment between connections for them to snap together. * This should be the same as the snap radius. * + * @deprecated v11 - This is no longer used. Use snapRadius instead. */ connectingSnapRadius: DEFAULT_SNAP_RADIUS, /** diff --git a/core/connection_previewers/insertion_marker_previewer.ts b/core/connection_previewers/insertion_marker_previewer.ts new file mode 100644 index 000000000..3f6f15841 --- /dev/null +++ b/core/connection_previewers/insertion_marker_previewer.ts @@ -0,0 +1,257 @@ +/** + * @license + * Copyright 2024 Google LLC + * SPDX-License-Identifier: Apache-2.0 + */ + +import {BlockSvg} from '../block_svg.js'; +import {IConnectionPreviewer} from '../interfaces/i_connection_previewer.js'; +import {RenderedConnection} from '../rendered_connection.js'; +import {WorkspaceSvg} from '../workspace_svg.js'; +import * as eventUtils from '../events/utils.js'; +import * as constants from '../constants.js'; +import * as renderManagement from '../render_management.js'; +import * as registry from '../registry.js'; + +/** + * An error message to throw if the block created by createMarkerBlock_ is + * missing any components. + */ +const DUPLICATE_BLOCK_ERROR = + 'The insertion marker previewer tried to create a marker but the result ' + + 'is missing %1. If you are using a mutator, make sure your domToMutation ' + + 'method is properly defined.'; + +export class InsertionMarkerPreviewer implements IConnectionPreviewer { + private readonly workspace: WorkspaceSvg; + + private fadedBlock: BlockSvg | null = null; + + private markerConn: RenderedConnection | null = null; + + private draggedConn: RenderedConnection | null = null; + + private staticConn: RenderedConnection | null = null; + + constructor(draggedBlock: BlockSvg) { + this.workspace = draggedBlock.workspace; + } + + /** + * Display a connection preview where the draggedCon connects to the + * staticCon, replacing the replacedBlock (currently connected to the + * staticCon). + * + * @param draggedConn The connection on the block stack being dragged. + * @param staticConn The connection not being dragged that we are + * connecting to. + * @param replacedBlock The block currently connected to the staticCon that + * is being replaced. + */ + previewReplacement( + draggedConn: RenderedConnection, + staticConn: RenderedConnection, + replacedBlock: BlockSvg, + ) { + eventUtils.disable(); + try { + this.hidePreview(); + this.fadedBlock = replacedBlock; + replacedBlock.fadeForReplacement(true); + if (this.workspace.getRenderer().shouldHighlightConnection(staticConn)) { + staticConn.highlight(); + this.staticConn = staticConn; + } + } finally { + eventUtils.enable(); + } + } + + /** + * Display a connection preview where the draggedCon connects to the + * staticCon, and no block is being relaced. + * + * @param draggedConn The connection on the block stack being dragged. + * @param staticConn The connection not being dragged that we are + * connecting to. + */ + previewConnection( + draggedConn: RenderedConnection, + staticConn: RenderedConnection, + ) { + if (draggedConn === this.draggedConn && staticConn === this.staticConn) { + return; + } + + eventUtils.disable(); + try { + this.hidePreview(); + const dragged = draggedConn.getSourceBlock(); + const marker = this.createInsertionMarker(dragged); + const markerConn = this.getMatchingConnection( + dragged, + marker, + draggedConn, + ); + if (!markerConn) { + throw Error('Could not create insertion marker to preview connection'); + } + + // Render disconnected from everything else so that we have a valid + // connection location. + marker.queueRender(); + renderManagement.triggerQueuedRenders(); + + // Connect() also renders the insertion marker. + markerConn.connect(staticConn); + + const originalOffsetToTarget = { + x: staticConn.x - markerConn.x, + y: staticConn.y - markerConn.y, + }; + const originalOffsetInBlock = markerConn.getOffsetInBlock().clone(); + renderManagement.finishQueuedRenders().then(() => { + // Position so that the existing block doesn't move. + marker?.positionNearConnection( + markerConn, + originalOffsetToTarget, + originalOffsetInBlock, + ); + marker?.getSvgRoot().setAttribute('visibility', 'visible'); + }); + + if (this.workspace.getRenderer().shouldHighlightConnection(staticConn)) { + staticConn.highlight(); + } + + this.markerConn = markerConn; + this.draggedConn = draggedConn; + this.staticConn = staticConn; + } finally { + eventUtils.enable(); + } + } + + private createInsertionMarker(origBlock: BlockSvg) { + const result = this.workspace.newBlock(origBlock.type); + result.setInsertionMarker(true); + if (origBlock.saveExtraState) { + const state = origBlock.saveExtraState(true); + if (state && result.loadExtraState) { + result.loadExtraState(state); + } + } else if (origBlock.mutationToDom) { + const oldMutationDom = origBlock.mutationToDom(); + if (oldMutationDom && result.domToMutation) { + result.domToMutation(oldMutationDom); + } + } + // Copy field values from the other block. These values may impact the + // rendered size of the insertion marker. Note that we do not care about + // child blocks here. + for (let i = 0; i < origBlock.inputList.length; i++) { + const sourceInput = origBlock.inputList[i]; + if (sourceInput.name === constants.COLLAPSED_INPUT_NAME) { + continue; // Ignore the collapsed input. + } + const resultInput = result.inputList[i]; + if (!resultInput) { + throw new Error(DUPLICATE_BLOCK_ERROR.replace('%1', 'an input')); + } + for (let j = 0; j < sourceInput.fieldRow.length; j++) { + const sourceField = sourceInput.fieldRow[j]; + const resultField = resultInput.fieldRow[j]; + if (!resultField) { + throw new Error(DUPLICATE_BLOCK_ERROR.replace('%1', 'a field')); + } + resultField.setValue(sourceField.getValue()); + } + } + + for (const block of result.getDescendants(false)) { + block.setInsertionMarker(true); + } + + result.setCollapsed(origBlock.isCollapsed()); + result.setInputsInline(origBlock.getInputsInline()); + + result.initSvg(); + result.getSvgRoot().setAttribute('visibility', 'hidden'); + return result; + } + + /** + * Gets the connection on the marker block that matches the original + * connection on the original block. + * + * @param orig The original block. + * @param marker The marker block (where we want to find the matching + * connection). + * @param origConn The original connection. + */ + private getMatchingConnection( + orig: BlockSvg, + marker: BlockSvg, + origConn: RenderedConnection, + ) { + const origConns = orig.getConnections_(true); + const markerConns = marker.getConnections_(true); + if (origConns.length !== markerConns.length) return null; + for (let i = 0; i < origConns.length; i++) { + if (origConns[i] === origConn) { + return markerConns[i]; + } + } + return null; + } + + /** Hide any previews that are currently displayed. */ + hidePreview() { + eventUtils.disable(); + try { + if (this.staticConn) { + this.staticConn.unhighlight(); + this.staticConn = null; + } + if (this.fadedBlock) { + this.fadedBlock.fadeForReplacement(false); + this.fadedBlock = null; + } + if (this.markerConn) { + this.hideInsertionMarker(this.markerConn); + this.markerConn = null; + this.draggedConn = null; + } + } finally { + eventUtils.enable(); + } + } + + private hideInsertionMarker(markerConn: RenderedConnection) { + const marker = markerConn.getSourceBlock(); + const markerPrev = marker.previousConnection; + const markerOutput = marker.outputConnection; + + if (!markerPrev?.targetConnection && !markerOutput?.targetConnection) { + // If we are the top block, unplugging doesn't do anything. + // The marker connection may not have a target block if we are hiding + // as part of applying connections. + markerConn.targetBlock()?.unplug(false); + } else { + marker.unplug(true); + } + + marker.dispose(); + } + + /** Dispose of any references held by this connection previewer. */ + dispose() { + this.hidePreview(); + } +} + +registry.register( + registry.Type.CONNECTION_PREVIEWER, + registry.DEFAULT, + InsertionMarkerPreviewer, +); diff --git a/core/field_input.ts b/core/field_input.ts index 2cd4015b0..513047054 100644 --- a/core/field_input.ts +++ b/core/field_input.ts @@ -542,6 +542,7 @@ export abstract class FieldInput extends Field< } else if (e.key === 'Escape') { this.setValue( this.htmlInput_!.getAttribute('data-untyped-default-value'), + false, ); WidgetDiv.hide(); dropDownDiv.hideWithoutAnimation(); diff --git a/core/flyout_base.ts b/core/flyout_base.ts index 77eae8cca..438e92d64 100644 --- a/core/flyout_base.ts +++ b/core/flyout_base.ts @@ -988,16 +988,32 @@ export abstract class Flyout ), ); this.listeners.push( - browserEvents.bind(root, 'pointerenter', block, block.addSelect), + browserEvents.bind(root, 'pointerenter', block, () => { + if (!this.targetWorkspace.isDragging()) { + block.addSelect(); + } + }), ); this.listeners.push( - browserEvents.bind(root, 'pointerleave', block, block.removeSelect), + browserEvents.bind(root, 'pointerleave', block, () => { + if (!this.targetWorkspace.isDragging()) { + block.removeSelect(); + } + }), ); this.listeners.push( - browserEvents.bind(rect, 'pointerenter', block, block.addSelect), + browserEvents.bind(rect, 'pointerenter', block, () => { + if (!this.targetWorkspace.isDragging()) { + block.addSelect(); + } + }), ); this.listeners.push( - browserEvents.bind(rect, 'pointerleave', block, block.removeSelect), + browserEvents.bind(rect, 'pointerleave', block, () => { + if (!this.targetWorkspace.isDragging()) { + block.removeSelect(); + } + }), ); } diff --git a/core/grid.ts b/core/grid.ts index 952ed018a..28e460fa0 100644 --- a/core/grid.ts +++ b/core/grid.ts @@ -20,11 +20,12 @@ import {GridOptions} from './options.js'; * Class for a workspace's grid. */ export class Grid { - private readonly spacing: number; - private readonly length: number; + private spacing: number; + private length: number; + private scale: number = 1; private readonly line1: SVGElement; private readonly line2: SVGElement; - private readonly snapToGrid: boolean; + private snapToGrid: boolean; /** * @param pattern The grid's SVG pattern, created during injection. @@ -52,6 +53,37 @@ export class Grid { this.snapToGrid = options['snap'] ?? false; } + /** + * Sets the spacing between the centers of the grid lines. + * + * This does not trigger snapping to the newly spaced grid. If you want to + * snap blocks to the grid programmatically that needs to be triggered + * on individual top-level blocks. The next time a block is dragged and + * dropped it will snap to the grid if snapping to the grid is enabled. + */ + setSpacing(spacing: number) { + this.spacing = spacing; + this.update(this.scale); + } + + /** Sets the length of the grid lines. */ + setLength(length: number) { + this.length = length; + this.update(this.scale); + } + + /** + * Sets whether blocks should snap to the grid or not. + * + * Setting this to true does not trigger snapping. If you want to snap blocks + * to the grid programmatically that needs to be triggered on individual + * top-level blocks. The next time a block is dragged and dropped it will + * snap to the grid. + */ + setSnapToGrid(snap: boolean) { + this.snapToGrid = snap; + } + /** * Whether blocks should snap to the grid, based on the initial configuration. * @@ -90,6 +122,7 @@ export class Grid { * @internal */ update(scale: number) { + this.scale = scale; const safeSpacing = this.spacing * scale; this.pattern.setAttribute('width', `${safeSpacing}`); diff --git a/core/insertion_marker_manager.ts b/core/insertion_marker_manager.ts index 69d3d2cb9..96c9327fc 100644 --- a/core/insertion_marker_manager.ts +++ b/core/insertion_marker_manager.ts @@ -56,6 +56,8 @@ const DUPLICATE_BLOCK_ERROR = * Class that controls updates to connections during drags. It is primarily * responsible for finding the closest eligible connection and highlighting or * unhighlighting it as needed during a drag. + * + * @deprecated v10 - Use an IConnectionPreviewer instead. */ export class InsertionMarkerManager { /** diff --git a/core/interfaces/i_connection_previewer.ts b/core/interfaces/i_connection_previewer.ts new file mode 100644 index 000000000..df7906a29 --- /dev/null +++ b/core/interfaces/i_connection_previewer.ts @@ -0,0 +1,50 @@ +/** + * @license + * Copyright 2023 Google LLC + * SPDX-License-Identifier: Apache-2.0 + */ + +import type {BlockSvg} from '../block_svg'; +import type {RenderedConnection} from '../rendered_connection'; + +/** + * Displays visual "previews" of where a block will be connected if it is + * dropped. + */ +export interface IConnectionPreviewer { + /** + * Display a connection preview where the draggedCon connects to the + * staticCon, replacing the replacedBlock (currently connected to the + * staticCon). + * + * @param draggedCon The connection on the block stack being dragged. + * @param staticCon The connection not being dragged that we are + * connecting to. + * @param replacedBlock The block currently connected to the staticCon that + * is being replaced. + */ + previewReplacement( + draggedConn: RenderedConnection, + staticConn: RenderedConnection, + replacedBlock: BlockSvg, + ): void; + + /** + * Display a connection preview where the draggedCon connects to the + * staticCon, and no block is being relaced. + * + * @param draggedCon The connection on the block stack being dragged. + * @param staticCon The connection not being dragged that we are + * connecting to. + */ + previewConnection( + draggedConn: RenderedConnection, + staticConn: RenderedConnection, + ): void; + + /** Hide any previews that are currently displayed. */ + hidePreview(): void; + + /** Dispose of any references held by this connection previewer. */ + dispose(): void; +} diff --git a/core/registry.ts b/core/registry.ts index 33bded304..3645a6fdf 100644 --- a/core/registry.ts +++ b/core/registry.ts @@ -21,8 +21,9 @@ import type {Options} from './options.js'; import type {Renderer} from './renderers/common/renderer.js'; import type {Theme} from './theme.js'; import type {ToolboxItem} from './toolbox/toolbox_item.js'; -import {IPaster} from './interfaces/i_paster.js'; -import {ICopyData, ICopyable} from './interfaces/i_copyable.js'; +import type {IPaster} from './interfaces/i_paster.js'; +import type {ICopyData, ICopyable} from './interfaces/i_copyable.js'; +import type {IConnectionPreviewer} from './interfaces/i_connection_previewer.js'; /** * A map of maps. With the keys being the type and name of the class we are @@ -66,6 +67,10 @@ export class Type<_T> { static CONNECTION_CHECKER = new Type('connectionChecker'); + static CONNECTION_PREVIEWER = new Type( + 'connectionPreviewer', + ); + static CURSOR = new Type('cursor'); static EVENT = new Type('event'); diff --git a/core/rendered_connection.ts b/core/rendered_connection.ts index 08c0471a2..8953ec977 100644 --- a/core/rendered_connection.ts +++ b/core/rendered_connection.ts @@ -22,19 +22,6 @@ import * as eventUtils from './events/utils.js'; import {hasBubble} from './interfaces/i_has_bubble.js'; import * as internalConstants from './internal_constants.js'; import {Coordinate} from './utils/coordinate.js'; -import * as dom from './utils/dom.js'; -import {Svg} from './utils/svg.js'; -import * as svgPaths from './utils/svg_paths.js'; - -/** A shape that has a pathDown property. */ -interface PathDownShape { - pathDown: string; -} - -/** A shape that has a pathLeft property. */ -interface PathLeftShape { - pathLeft: string; -} /** Maximum randomness in workspace units for bumping a block. */ const BUMP_RANDOMNESS = 10; @@ -49,7 +36,7 @@ export class RenderedConnection extends Connection { private readonly dbOpposite: ConnectionDB; private readonly offsetInBlock: Coordinate; private trackedState: TrackedState; - private highlightPath: SVGPathElement | null = null; + private highlighted: boolean = false; /** Connection this connection connects to. Null if not connected. */ override targetConnection: RenderedConnection | null = null; @@ -92,10 +79,7 @@ export class RenderedConnection extends Connection { if (this.trackedState === RenderedConnection.TrackedState.TRACKED) { this.db.removeConnection(this, this.y); } - if (this.highlightPath) { - dom.removeNode(this.highlightPath); - this.highlightPath = null; - } + this.sourceBlock_.pathObject.removeConnectionHighlight?.(this); } /** @@ -305,57 +289,19 @@ export class RenderedConnection extends Connection { /** Add highlighting around this connection. */ highlight() { - if (this.highlightPath) { - // This connection is already highlighted - return; - } - let steps; - const sourceBlockSvg = this.sourceBlock_; - const renderConstants = sourceBlockSvg.workspace - .getRenderer() - .getConstants(); - const shape = renderConstants.shapeFor(this); - if ( - this.type === ConnectionType.INPUT_VALUE || - this.type === ConnectionType.OUTPUT_VALUE - ) { - // Vertical line, puzzle tab, vertical line. - const yLen = renderConstants.TAB_OFFSET_FROM_TOP; - steps = - svgPaths.moveBy(0, -yLen) + - svgPaths.lineOnAxis('v', yLen) + - (shape as unknown as PathDownShape).pathDown + - svgPaths.lineOnAxis('v', yLen); - } else { - const xLen = - renderConstants.NOTCH_OFFSET_LEFT - renderConstants.CORNER_RADIUS; - // Horizontal line, notch, horizontal line. - steps = - svgPaths.moveBy(-xLen, 0) + - svgPaths.lineOnAxis('h', xLen) + - (shape as unknown as PathLeftShape).pathLeft + - svgPaths.lineOnAxis('h', xLen); - } - const offset = this.offsetInBlock; - this.highlightPath = dom.createSvgElement( - Svg.PATH, - { - 'class': 'blocklyHighlightedConnectionPath', - 'd': steps, - 'transform': - `translate(${offset.x}, ${offset.y})` + - (this.sourceBlock_.RTL ? ' scale(-1 1)' : ''), - }, - this.sourceBlock_.getSvgRoot(), - ); + this.highlighted = true; + this.getSourceBlock().queueRender(); } /** Remove the highlighting around this connection. */ unhighlight() { - if (this.highlightPath) { - dom.removeNode(this.highlightPath); - this.highlightPath = null; - } + this.highlighted = false; + this.getSourceBlock().queueRender(); + } + + /** Returns true if this connection is highlighted, false otherwise. */ + isHighlighted(): boolean { + return this.highlighted; } /** diff --git a/core/renderers/common/constants.ts b/core/renderers/common/constants.ts index f0acc39aa..1983793f0 100644 --- a/core/renderers/common/constants.ts +++ b/core/renderers/common/constants.ts @@ -53,8 +53,8 @@ export interface PuzzleTab { type: number; width: number; height: number; - pathDown: string | ((p1: number) => string); - pathUp: string | ((p1: number) => string); + pathDown: string; + pathUp: string; } /** @@ -100,6 +100,22 @@ export function isDynamicShape(shape: Shape): shape is DynamicShape { return (shape as DynamicShape).isDynamic; } +/** Returns whether the shape is a puzzle tab or not. */ +export function isPuzzleTab(shape: Shape): shape is PuzzleTab { + return ( + (shape as PuzzleTab).pathDown !== undefined && + (shape as PuzzleTab).pathUp !== undefined + ); +} + +/** Returns whether the shape is a notch or not. */ +export function isNotch(shape: Shape): shape is Notch { + return ( + (shape as Notch).pathLeft !== undefined && + (shape as Notch).pathRight !== undefined + ); +} + /** * An object that provides constants for rendering blocks. */ diff --git a/core/renderers/common/drawer.ts b/core/renderers/common/drawer.ts index e361a606d..83732516c 100644 --- a/core/renderers/common/drawer.ts +++ b/core/renderers/common/drawer.ts @@ -18,10 +18,11 @@ import type {PreviousConnection} from '../measurables/previous_connection.js'; import type {Row} from '../measurables/row.js'; import {Types} from '../measurables/types.js'; -import {isDynamicShape} from './constants.js'; +import {isDynamicShape, isNotch, isPuzzleTab} from './constants.js'; import type {ConstantProvider, Notch, PuzzleTab} from './constants.js'; import type {RenderInfo} from './info.js'; import * as deprecation from '../../utils/deprecation.js'; +import {ConnectionType} from '../../connection_type.js'; /** * An object that draws a block based on the given rendering information. @@ -60,6 +61,7 @@ export class Drawer { draw() { this.drawOutline_(); this.drawInternals_(); + this.updateConnectionHighlights(); this.block_.pathObject.setPath(this.outlinePath_ + '\n' + this.inlinePath_); if (this.info_.RTL) { @@ -440,4 +442,87 @@ export class Drawer { ); } } + + /** + * Updates the path object to reflect which connections on the block are + * highlighted. + */ + protected updateConnectionHighlights() { + for (const row of this.info_.rows) { + for (const elem of row.elements) { + if (!(elem instanceof Connection)) continue; + + if (elem.highlighted) { + this.drawConnectionHighlightPath(elem); + } else { + this.block_.pathObject.removeConnectionHighlight?.( + elem.connectionModel, + ); + } + } + } + } + + /** Returns a path to highlight the given connection. */ + drawConnectionHighlightPath(measurable: Connection) { + const conn = measurable.connectionModel; + let path = ''; + if ( + conn.type === ConnectionType.INPUT_VALUE || + conn.type === ConnectionType.OUTPUT_VALUE + ) { + path = this.getExpressionConnectionHighlightPath(measurable); + } else { + path = this.getStatementConnectionHighlightPath(measurable); + } + const block = conn.getSourceBlock(); + block.pathObject.addConnectionHighlight?.( + conn, + path, + conn.getOffsetInBlock(), + block.RTL, + ); + } + + /** + * Returns a path to highlight the given conneciton, assuming it is an + * input or output connection. + */ + private getExpressionConnectionHighlightPath(connection: Connection): string { + let connPath = ''; + if (isDynamicShape(connection.shape)) { + connPath = connection.shape.pathDown(connection.height); + } else if (isPuzzleTab(connection.shape)) { + connPath = connection.shape.pathDown; + } + + // We are assuming that there is room for the tab offset above and below + // the tab. + const yLen = this.constants_.TAB_OFFSET_FROM_TOP; + return ( + svgPaths.moveBy(0, -yLen) + + svgPaths.lineOnAxis('v', yLen) + + connPath + + svgPaths.lineOnAxis('v', yLen) + ); + } + + /** + * Returns a path to highlight the given conneciton, assuming it is a + * next or previous connection. + */ + private getStatementConnectionHighlightPath(connection: Connection): string { + if (!isNotch(connection.shape)) { + throw new Error('Statement connections should have notch shapes'); + } + + const xLen = + this.constants_.NOTCH_OFFSET_LEFT - this.constants_.CORNER_RADIUS; + return ( + svgPaths.moveBy(-xLen, 0) + + svgPaths.lineOnAxis('h', xLen) + + connection.shape.pathLeft + + svgPaths.lineOnAxis('h', xLen) + ); + } } diff --git a/core/renderers/common/i_path_object.ts b/core/renderers/common/i_path_object.ts index 5f7189bab..30033f18e 100644 --- a/core/renderers/common/i_path_object.ts +++ b/core/renderers/common/i_path_object.ts @@ -9,7 +9,8 @@ import type {BlockStyle} from '../../theme.js'; import type {BlockSvg} from '../../block_svg.js'; import type {ConstantProvider} from './constants.js'; -import {RenderedConnection} from '../../rendered_connection.js'; +import type {RenderedConnection} from '../../rendered_connection.js'; +import type {Coordinate} from '../../utils/coordinate.js'; /** * An interface for a block's path object. @@ -121,21 +122,16 @@ export interface IPathObject { */ updateMovable(enabled: boolean): void; - /** - * Add or remove styling that shows that if the dragging block is dropped, - * this block will be replaced. If a shadow block, it will disappear. - * Otherwise it will bump. - * - * @param enable True if styling should be added. - */ - updateReplacementFade(enabled: boolean): void; + /** Adds the given path as a connection highlight for the given connection. */ + addConnectionHighlight?( + connection: RenderedConnection, + connectionPath: string, + offset: Coordinate, + rtl: boolean, + ): void; /** - * Add or remove styling that shows that if the dragging block is dropped, - * this block will be connected to the input. - * - * @param conn The connection on the input to highlight. - * @param enable True if styling should be added. + * Removes any highlight associated with the given connection, if it exists. */ - updateShapeForInputHighlight(conn: RenderedConnection, enable: boolean): void; + removeConnectionHighlight?(connection: RenderedConnection): void; } diff --git a/core/renderers/common/info.ts b/core/renderers/common/info.ts index fa44b7743..995124c1b 100644 --- a/core/renderers/common/info.ts +++ b/core/renderers/common/info.ts @@ -37,6 +37,7 @@ import {ValueInput} from '../../inputs/value_input.js'; import type {ConstantProvider} from './constants.js'; import type {Renderer} from './renderer.js'; +import {Connection} from '../measurables/connection.js'; /** * An object containing all sizing information needed to draw this block. @@ -143,8 +144,7 @@ export class RenderInfo { } /** - * Populate and return an object containing all sizing information needed to - * draw this block. + * Populate this object with all sizing information needed to draw the block. * * This measure pass does not propagate changes to the block (although fields * may choose to rerender when getSize() is called). However, calling it @@ -748,4 +748,21 @@ export class RenderInfo { this.startY = this.topRow.capline; this.bottomRow.baseline = yCursor - this.bottomRow.descenderHeight; } + + /** Returns the connection measurable associated with the given connection. */ + getMeasureableForConnection(conn: RenderedConnection): Connection | null { + if (this.outputConnection?.connectionModel === conn) { + return this.outputConnection; + } + + for (const row of this.rows) { + for (const elem of row.elements) { + if (elem instanceof Connection && elem.connectionModel === conn) { + return elem; + } + } + } + + return null; + } } diff --git a/core/renderers/common/path_object.ts b/core/renderers/common/path_object.ts index f5987f86e..d5c0850a1 100644 --- a/core/renderers/common/path_object.ts +++ b/core/renderers/common/path_object.ts @@ -8,7 +8,9 @@ import type {BlockSvg} from '../../block_svg.js'; import type {Connection} from '../../connection.js'; +import {RenderedConnection} from '../../rendered_connection.js'; import type {BlockStyle} from '../../theme.js'; +import {Coordinate} from '../../utils/coordinate.js'; import * as dom from '../../utils/dom.js'; import {Svg} from '../../utils/svg.js'; @@ -38,6 +40,12 @@ export class PathObject implements IPathObject { constants: ConstantProvider; style: BlockStyle; + /** Highlight paths associated with connections. */ + private connectionHighlights = new WeakMap(); + + /** Locations of connection highlights. */ + private highlightOffsets = new WeakMap(); + /** * @param root The root SVG element. * @param style The style object to use for colouring. @@ -256,4 +264,53 @@ export class PathObject implements IPathObject { updateShapeForInputHighlight(_conn: Connection, _enable: boolean) { // NOOP } + + /** Adds the given path as a connection highlight for the given connection. */ + addConnectionHighlight( + connection: RenderedConnection, + connectionPath: string, + offset: Coordinate, + rtl: boolean, + ) { + if (this.connectionHighlights.has(connection)) { + if (this.currentHighlightMatchesNew(connection, connectionPath, offset)) { + return; + } + this.removeConnectionHighlight(connection); + } + + const highlight = dom.createSvgElement( + Svg.PATH, + { + 'class': 'blocklyHighlightedConnectionPath', + 'd': connectionPath, + 'transform': + `translate(${offset.x}, ${offset.y})` + (rtl ? ' scale(-1 1)' : ''), + }, + this.svgRoot, + ); + this.connectionHighlights.set(connection, highlight); + } + + private currentHighlightMatchesNew( + connection: RenderedConnection, + newPath: string, + newOffset: Coordinate, + ): boolean { + const currPath = this.connectionHighlights + .get(connection) + ?.getAttribute('d'); + const currOffset = this.highlightOffsets.get(connection); + return currPath === newPath && Coordinate.equals(currOffset, newOffset); + } + + /** + * Removes any highlight associated with the given connection, if it exists. + */ + removeConnectionHighlight(connection: RenderedConnection) { + const highlight = this.connectionHighlights.get(connection); + if (!highlight) return; + dom.removeNode(highlight); + this.connectionHighlights.delete(connection); + } } diff --git a/core/renderers/common/renderer.ts b/core/renderers/common/renderer.ts index 3a53322dd..15a958db4 100644 --- a/core/renderers/common/renderer.ts +++ b/core/renderers/common/renderer.ts @@ -26,6 +26,7 @@ import type {IPathObject} from './i_path_object.js'; import {RenderInfo} from './info.js'; import {MarkerSvg} from './marker_svg.js'; import {PathObject} from './path_object.js'; +import * as deprecation from '../../utils/deprecation.js'; /** * The base class for a block renderer. @@ -231,12 +232,21 @@ export class Renderer implements IRegistrable { * @param local The connection currently being dragged. * @param topBlock The block currently being dragged. * @returns The preview type to display. + * + * @deprecated v10 - This function is no longer respected. A custom + * IConnectionPreviewer may be able to fulfill the functionality. */ getConnectionPreviewMethod( closest: RenderedConnection, local: RenderedConnection, topBlock: BlockSvg, ): PreviewType { + deprecation.warn( + 'getConnectionPreviewMethod', + 'v10', + 'v12', + 'an IConnectionPreviewer, if it fulfills your use case.', + ); if ( local.type === ConnectionType.OUTPUT_VALUE || local.type === ConnectionType.PREVIOUS_STATEMENT diff --git a/core/renderers/geras/drawer.ts b/core/renderers/geras/drawer.ts index fd9a0795e..29bcbfab4 100644 --- a/core/renderers/geras/drawer.ts +++ b/core/renderers/geras/drawer.ts @@ -40,6 +40,7 @@ export class Drawer extends BaseDrawer { override draw() { this.drawOutline_(); this.drawInternals_(); + this.updateConnectionHighlights(); const pathObject = this.block_.pathObject as PathObject; pathObject.setPath(this.outlinePath_ + '\n' + this.inlinePath_); diff --git a/core/renderers/measurables/connection.ts b/core/renderers/measurables/connection.ts index e25215770..5744eaab4 100644 --- a/core/renderers/measurables/connection.ts +++ b/core/renderers/measurables/connection.ts @@ -20,6 +20,7 @@ import {Types} from './types.js'; export class Connection extends Measurable { shape: Shape; isDynamicShape: boolean; + highlighted: boolean; /** * @param constants The rendering constants provider. @@ -32,9 +33,11 @@ export class Connection extends Measurable { ) { super(constants); - this.shape = this.constants_.shapeFor(connectionModel); - - this.isDynamicShape = 'isDynamic' in this.shape && this.shape.isDynamic; this.type |= Types.CONNECTION; + + this.shape = this.constants_.shapeFor(connectionModel); + this.isDynamicShape = 'isDynamic' in this.shape && this.shape.isDynamic; + + this.highlighted = connectionModel.isHighlighted(); } } diff --git a/core/renderers/zelos/constants.ts b/core/renderers/zelos/constants.ts index 73a600c58..1eabd7edd 100644 --- a/core/renderers/zelos/constants.ts +++ b/core/renderers/zelos/constants.ts @@ -392,19 +392,20 @@ export class ConstantProvider extends BaseConstantProvider { blockHeight > maxHeight ? blockHeight - maxHeight : 0; const height = blockHeight > maxHeight ? maxHeight : blockHeight; const radius = height / 2; + const sweep = right === up ? '0' : '1'; return ( svgPaths.arc( 'a', - '0 0,1', + '0 0,' + sweep, radius, - svgPaths.point((up ? -1 : 1) * radius, (up ? -1 : 1) * radius), + svgPaths.point((right ? 1 : -1) * radius, (up ? -1 : 1) * radius), ) + - svgPaths.lineOnAxis('v', (right ? 1 : -1) * remainingHeight) + + svgPaths.lineOnAxis('v', (up ? -1 : 1) * remainingHeight) + svgPaths.arc( 'a', - '0 0,1', + '0 0,' + sweep, radius, - svgPaths.point((up ? 1 : -1) * radius, (up ? -1 : 1) * radius), + svgPaths.point((right ? -1 : 1) * radius, (up ? -1 : 1) * radius), ) ); } @@ -465,19 +466,20 @@ export class ConstantProvider extends BaseConstantProvider { */ function makeMainPath(height: number, up: boolean, right: boolean): string { const innerHeight = height - radius * 2; + const sweep = right === up ? '0' : '1'; return ( svgPaths.arc( 'a', - '0 0,1', + '0 0,' + sweep, radius, - svgPaths.point((up ? -1 : 1) * radius, (up ? -1 : 1) * radius), + svgPaths.point((right ? 1 : -1) * radius, (up ? -1 : 1) * radius), ) + - svgPaths.lineOnAxis('v', (right ? 1 : -1) * innerHeight) + + svgPaths.lineOnAxis('v', (up ? -1 : 1) * innerHeight) + svgPaths.arc( 'a', - '0 0,1', + '0 0,' + sweep, radius, - svgPaths.point((up ? 1 : -1) * radius, (up ? -1 : 1) * radius), + svgPaths.point((right ? -1 : 1) * radius, (up ? -1 : 1) * radius), ) ); } diff --git a/core/renderers/zelos/drawer.ts b/core/renderers/zelos/drawer.ts index ffdc3ca58..009247aea 100644 --- a/core/renderers/zelos/drawer.ts +++ b/core/renderers/zelos/drawer.ts @@ -7,10 +7,13 @@ // Former goog.module ID: Blockly.zelos.Drawer import type {BlockSvg} from '../../block_svg.js'; +import {ConnectionType} from '../../connection_type.js'; import * as svgPaths from '../../utils/svg_paths.js'; import type {BaseShape, DynamicShape, Notch} from '../common/constants.js'; import {Drawer as BaseDrawer} from '../common/drawer.js'; +import {Connection} from '../measurables/connection.js'; import type {InlineInput} from '../measurables/inline_input.js'; +import {OutputConnection} from '../measurables/output_connection.js'; import type {Row} from '../measurables/row.js'; import type {SpacerRow} from '../measurables/spacer_row.js'; import {Types} from '../measurables/types.js'; @@ -41,6 +44,7 @@ export class Drawer extends BaseDrawer { pathObject.beginDrawing(); this.drawOutline_(); this.drawInternals_(); + this.updateConnectionHighlights(); pathObject.setPath(this.outlinePath_ + '\n' + this.inlinePath_); if (this.info_.RTL) { @@ -179,21 +183,27 @@ export class Drawer extends BaseDrawer { return; } - const width = input.width - input.connectionWidth * 2; - const height = input.height; - const yPos = input.centerline - height / 2; - + const yPos = input.centerline - input.height / 2; const connectionRight = input.xPos + input.connectionWidth; - const outlinePath = - svgPaths.moveTo(connectionRight, yPos) + - svgPaths.lineOnAxis('h', width) + - (input.shape as DynamicShape).pathRightDown(input.height) + - svgPaths.lineOnAxis('h', -width) + - (input.shape as DynamicShape).pathUp(input.height) + - 'z'; + const path = + svgPaths.moveTo(connectionRight, yPos) + this.getInlineInputPath(input); + const pathObject = this.block_.pathObject as PathObject; - pathObject.setOutlinePath(inputName, outlinePath); + pathObject.setOutlinePath(inputName, path); + } + + private getInlineInputPath(input: InlineInput) { + const width = input.width - input.connectionWidth * 2; + const height = input.height; + + return ( + svgPaths.lineOnAxis('h', width) + + (input.shape as DynamicShape).pathRightDown(height) + + svgPaths.lineOnAxis('h', -width) + + (input.shape as DynamicShape).pathUp(height) + + 'z' + ); } override drawStatementInput_(row: Row) { @@ -225,4 +235,40 @@ export class Drawer extends BaseDrawer { this.positionStatementInputConnection_(row); } + + /** Returns a path to highlight the given connection. */ + drawConnectionHighlightPath(measurable: Connection) { + const conn = measurable.connectionModel; + if ( + conn.type === ConnectionType.NEXT_STATEMENT || + conn.type === ConnectionType.PREVIOUS_STATEMENT || + (conn.type === ConnectionType.OUTPUT_VALUE && !measurable.isDynamicShape) + ) { + super.drawConnectionHighlightPath(measurable); + return; + } + + let path = ''; + if (conn.type === ConnectionType.INPUT_VALUE) { + const input = measurable as InlineInput; + const xPos = input.connectionWidth; + const yPos = -input.height / 2; + path = svgPaths.moveTo(xPos, yPos) + this.getInlineInputPath(input); + } else { + // Dynamic output. + const output = measurable as OutputConnection; + const xPos = output.width; + const yPos = -output.height / 2; + path = + svgPaths.moveTo(xPos, yPos) + + (output.shape as DynamicShape).pathDown(output.height); + } + const block = conn.getSourceBlock(); + block.pathObject.addConnectionHighlight?.( + conn, + path, + conn.getOffsetInBlock(), + block.RTL, + ); + } } diff --git a/core/renderers/zelos/renderer.ts b/core/renderers/zelos/renderer.ts index a3bd5f70e..354a3f35a 100644 --- a/core/renderers/zelos/renderer.ts +++ b/core/renderers/zelos/renderer.ts @@ -7,7 +7,6 @@ // Former goog.module ID: Blockly.zelos.Renderer import type {BlockSvg} from '../../block_svg.js'; -import type {Connection} from '../../connection.js'; import {ConnectionType} from '../../connection_type.js'; import {InsertionMarkerManager} from '../../insertion_marker_manager.js'; import type {Marker} from '../../keyboard_nav/marker.js'; @@ -23,6 +22,7 @@ import {Drawer} from './drawer.js'; import {RenderInfo} from './info.js'; import {MarkerSvg} from './marker_svg.js'; import {PathObject} from './path_object.js'; +import * as deprecation from '../../utils/deprecation.js'; /** * The zelos renderer. This renderer emulates Scratch-style and MakeCode-style @@ -109,18 +109,21 @@ export class Renderer extends BaseRenderer { return this.constants_; } - override shouldHighlightConnection(conn: Connection) { - return ( - conn.type !== ConnectionType.INPUT_VALUE && - conn.type !== ConnectionType.OUTPUT_VALUE - ); - } - + /** + * @deprecated v10 - This function is no longer respected. A custom + * IConnectionPreviewer may be able to fulfill the functionality. + */ override getConnectionPreviewMethod( closest: RenderedConnection, local: RenderedConnection, topBlock: BlockSvg, ) { + deprecation.warn( + 'getConnectionPreviewMethod', + 'v10', + 'v12', + 'an IConnectionPreviewer, if it fulfills your use case.', + ); if (local.type === ConnectionType.OUTPUT_VALUE) { if (!closest.isConnected()) { return InsertionMarkerManager.PREVIEW_TYPE.INPUT_OUTLINE; diff --git a/core/utils/deprecation.ts b/core/utils/deprecation.ts index da7977c3e..c793b5f57 100644 --- a/core/utils/deprecation.ts +++ b/core/utils/deprecation.ts @@ -6,6 +6,9 @@ // Former goog.module ID: Blockly.utils.deprecation +// Set of previously-emitted warnings. +const previousWarnings = new Set(); + /** * Warn developers that a function or property is deprecated. * @@ -33,5 +36,12 @@ export function warn( if (opt_use) { msg += '\nUse ' + opt_use + ' instead.'; } + + // Don't log deprecation warnings multiple times. + if (previousWarnings.has(msg)) { + return; + } + + previousWarnings.add(msg); console.warn(msg); } diff --git a/core/workspace_audio.ts b/core/workspace_audio.ts index 9f4dc54fe..c2ab93222 100644 --- a/core/workspace_audio.ts +++ b/core/workspace_audio.ts @@ -31,6 +31,9 @@ export class WorkspaceAudio { /** Time that the last sound was played. */ private lastSound_: Date | null = null; + /** Whether the audio is muted or not. */ + private muted: boolean = false; + /** * @param parentWorkspace The parent of the workspace this audio object * belongs to, or null. @@ -121,6 +124,9 @@ export class WorkspaceAudio { * @param opt_volume Volume of sound (0-1). */ play(name: string, opt_volume?: number) { + if (this.muted) { + return; + } const sound = this.sounds.get(name); if (sound) { // Don't play one sound on top of another. @@ -148,4 +154,18 @@ export class WorkspaceAudio { this.parentWorkspace.getAudioManager().play(name, opt_volume); } } + + /** + * @param muted If true, mute sounds. Otherwise, play them. + */ + setMuted(muted: boolean) { + this.muted = muted; + } + + /** + * @returns Whether the audio is currently muted or not. + */ + getMuted(): boolean { + return this.muted; + } } diff --git a/core/workspace_svg.ts b/core/workspace_svg.ts index fe1386587..0eb7e8087 100644 --- a/core/workspace_svg.ts +++ b/core/workspace_svg.ts @@ -2535,7 +2535,6 @@ export class WorkspaceSvg extends Workspace implements IASTNodeLocationSvg { * Get the grid object for this workspace, or null if there is none. * * @returns The grid object for this workspace. - * @internal */ getGrid(): Grid | null { return this.grid; diff --git a/core/xml.ts b/core/xml.ts index c3b2d3ebc..ee72f526b 100644 --- a/core/xml.ts +++ b/core/xml.ts @@ -995,10 +995,7 @@ function domToBlockHeadless( throw TypeError('Shadow block not allowed non-shadow child.'); } } - // Ensure this block doesn't have any variable inputs. - if (block.getVarModels().length) { - throw TypeError('Shadow blocks cannot have variable references.'); - } + block.setShadow(true); } return block; diff --git a/msg/json/ab.json b/msg/json/ab.json index afc2f0017..8ab782a4f 100644 --- a/msg/json/ab.json +++ b/msg/json/ab.json @@ -134,7 +134,7 @@ "MATH_MODULO_TITLE": "ацәынха %1 : %2", "MATH_MODULO_TOOLTIP": "Иҳанаҭоит ацәынха ҩ-хыԥхьаӡарак ршараан.", "MATH_RANDOM_INT_TITLE": "иарбанзаалакь еибгоу ахыԥхьаӡара %1 инаркны %2 нӡа", - "MATH_RANDOM_FLOAT_TITLE_RANDOM": "иарбанзаалакь ахыԥхьашара 0 инаркны (иалаҵаны) 1 аҟынӡа", + "MATH_RANDOM_FLOAT_TITLE_RANDOM": "иарбанзаалакь ахыԥхьашара 0 инаркны (иалаҵаны) 1 аҟынӡа", "MATH_RANDOM_FLOAT_TOOLTIP": "Иҳанаҭоит иарбанзаалакь ахыԥхьаӡара 0.0 инаркны (иалаҵаны) 1.0 аҟынӡа.", "TEXT_TEXT_HELPURL": "https://ab.wikipedia.org/wiki/Ацәаҳәатә_хкы", "TEXT_TEXT_TOOLTIP": "Анбан, ажәа ма ацәаҳәа атеқст аҟны.", diff --git a/msg/json/ar.json b/msg/json/ar.json index 91fc4e01e..2d382ddcf 100644 --- a/msg/json/ar.json +++ b/msg/json/ar.json @@ -9,6 +9,7 @@ "Mido", "Moud hosny", "MuratTheTurkish", + "NEHAOUA", "Samir", "Test Create account", "ديفيد", @@ -49,6 +50,7 @@ "NEW_VARIABLE_TITLE": "اسم المتغير الجديد:", "VARIABLE_ALREADY_EXISTS": "المتغير '%1' موجود بالفعل", "VARIABLE_ALREADY_EXISTS_FOR_ANOTHER_TYPE": "متغير بأسم '%1' معرف من نوع اخر : '%2'.", + "VARIABLE_ALREADY_EXISTS_FOR_A_PARAMETER": "المتغير المسمى '%1' موجود بالفعل كمعلمة في الإجراء '%2'.", "DELETE_VARIABLE_CONFIRMATION": "حذف%1 1 استخدامات المتغير '%2'؟", "CANNOT_DELETE_VARIABLE_PROCEDURE": "لايمكن حذف متغير \"%1\" بسبب انه جزء من الدالة \"%2\"", "DELETE_VARIABLE": "حذف المتغير %1", @@ -67,14 +69,14 @@ "COLOUR_BLEND_RATIO": "نسبة", "COLOUR_BLEND_TOOLTIP": "دمج لونين ببعضهما البعض بنسبة (0.0 - 1.0).", "CONTROLS_REPEAT_HELPURL": "https://ar.wikipedia.org/wiki/حلقة_تكرار", - "CONTROLS_REPEAT_TITLE": "كرر %1 مرات", + "CONTROLS_REPEAT_TITLE": "كرر %1 مرات", "CONTROLS_REPEAT_INPUT_DO": "نفّذ", "CONTROLS_REPEAT_TOOLTIP": "نفّذ بعض الأوامر عدة مرات.", "CONTROLS_WHILEUNTIL_OPERATOR_WHILE": "اكرّر طالما", "CONTROLS_WHILEUNTIL_OPERATOR_UNTIL": "اكرّر حتى", "CONTROLS_WHILEUNTIL_TOOLTIP_WHILE": "بما ان القيمة صحيحة, نفّذ بعض الأوامر.", "CONTROLS_WHILEUNTIL_TOOLTIP_UNTIL": "بما ان القيمة خاطئة, نفّذ بعض الأوامر.", - "CONTROLS_FOR_TOOLTIP": "اجعل المتغير %1 يأخذ القيم من رقم البداية الى رقم النهاية، وقم بالعد داخل المجال المحدد، وطبق أوامر القطع المحددة.", + "CONTROLS_FOR_TOOLTIP": "اجعل المتغير %1 يأخذ القيم من رقم البداية الى رقم النهاية، وقم بالعد داخل المجال المحدد، وطبق أوامر القطع المحددة.", "CONTROLS_FOR_TITLE": "عد بـ %1 من %2 إلى %3 بمعدل %4", "CONTROLS_FOREACH_TITLE": "لكل عنصر %1 في قائمة %2", "CONTROLS_FOREACH_TOOLTIP": "لكل عنصر في قائمة ما، عين المتغير '%1' لهذا الغنصر، ومن ثم نفذ بعض الأوامر.", @@ -186,7 +188,7 @@ "MATH_CONSTRAIN_TITLE": "تقيد %1 منخفض %2 مرتفع %3", "MATH_CONSTRAIN_TOOLTIP": "تقييد العددليكون بين الحدود المحددة (ضمناً).", "MATH_RANDOM_INT_HELPURL": "https://ar.wikipedia.org/wiki/توليد_الأعداد_العشوائية", - "MATH_RANDOM_INT_TITLE": " عدد صحيح عشوائي من %1 إلى %2", + "MATH_RANDOM_INT_TITLE": "عدد صحيح عشوائي من %1 إلى %2", "MATH_RANDOM_INT_TOOLTIP": "يرجع عدد صحيح عشوائي بين حدين محددين, ضمنيا.", "MATH_RANDOM_FLOAT_HELPURL": "https://ar.wikipedia.org/wiki/توليد_الأعداد_العشوائية", "MATH_RANDOM_FLOAT_TITLE_RANDOM": "كسر عشوائي", @@ -253,7 +255,7 @@ "LISTS_CREATE_WITH_CONTAINER_TOOLTIP": "أضف, إزل, أو أعد ترتيب المقاطع لإعادة تكوين القطعة قائمة القطع التالية.", "LISTS_CREATE_WITH_ITEM_TOOLTIP": "أضف عنصرا إلى القائمة.", "LISTS_REPEAT_TOOLTIP": "انشئ قائمة تتألف من القيمة المعطاة متكررة لعدد محدد من المرات.", - "LISTS_REPEAT_TITLE": "إنشئ قائمة مع العنصر %1 %2 مرات", + "LISTS_REPEAT_TITLE": "إنشئ قائمة مع العنصر %1 %2 مرات", "LISTS_LENGTH_TITLE": "الطول من %1", "LISTS_LENGTH_TOOLTIP": "تقوم بإرجاع طول قائمة.", "LISTS_ISEMPTY_TITLE": "%1 فارغ", @@ -261,7 +263,7 @@ "LISTS_INLIST": "في قائمة", "LISTS_INDEX_OF_FIRST": "ابحث على على التواجد الأول للعنصر", "LISTS_INDEX_OF_LAST": "ابحث على التواجد الأخير للعنصر", - "LISTS_INDEX_OF_TOOLTIP": "تقوم بإرجاع مؤشر التواجد الأول/الأخير في القائمة. تقوم بإرجاع %1 إذا لم يتم العثور على النص.", + "LISTS_INDEX_OF_TOOLTIP": "تقوم بإرجاع مؤشر التواجد الأول/الأخير في القائمة. تقوم بإرجاع %1 إذا لم يتم العثور على النص.", "LISTS_GET_INDEX_GET": "احصل على", "LISTS_GET_INDEX_GET_REMOVE": "احصل على و ازل", "LISTS_GET_INDEX_REMOVE": "ازل", @@ -296,7 +298,7 @@ "LISTS_SET_INDEX_TOOLTIP_INSERT_LAST": "ألصق هذا العنصر بنهاية قائمة.", "LISTS_SET_INDEX_TOOLTIP_INSERT_RANDOM": "ادخل العنصر عشوائياً في القائمة.", "LISTS_GET_SUBLIST_START_FROM_START": "احصل على قائمة فرعية من #", - "LISTS_GET_SUBLIST_START_FROM_END": "احصل على قائمة فرعية من # من نهاية", + "LISTS_GET_SUBLIST_START_FROM_END": "احصل على قائمة فرعية من # من نهاية", "LISTS_GET_SUBLIST_START_FIRST": "احصل على قائمة فرعية من الأول", "LISTS_GET_SUBLIST_END_FROM_START": "إلى #", "LISTS_GET_SUBLIST_END_FROM_END": "إلى # من نهاية", @@ -336,7 +338,7 @@ "PROCEDURES_CALLNORETURN_HELPURL": "https://ar.wikipedia.org/wiki/دالة_(برمجة)", "PROCEDURES_CALLNORETURN_TOOLTIP": "تشغيل الدالة المعرفة من قبل المستخدم '%1'.", "PROCEDURES_CALLRETURN_HELPURL": "https://ar.wikipedia.org/wiki/دالة_(برمجة)", - "PROCEDURES_CALLRETURN_TOOLTIP": "تشغيل الدالة المعرفة من قبل المستخدم %1 واستخدام مخرجاتها.", + "PROCEDURES_CALLRETURN_TOOLTIP": "تشغيل الدالة المعرفة من قبل المستخدم %1 واستخدام مخرجاتها.", "PROCEDURES_MUTATORCONTAINER_TITLE": "المدخلات", "PROCEDURES_MUTATORCONTAINER_TOOLTIP": "إضافة أو إزالة أو إعادة ترتيب المدخلات لهذه المهمة.", "PROCEDURES_MUTATORARG_TITLE": "اسم الإدخال:", diff --git a/msg/json/ast.json b/msg/json/ast.json index 066274b12..4d6d9bb76 100644 --- a/msg/json/ast.json +++ b/msg/json/ast.json @@ -1,9 +1,10 @@ { "@metadata": { "authors": [ - "Fitoschido" + "Fitoschido", + "YoaR" ] }, "DIALOG_OK": "Aceutar", - "DIALOG_CANCEL": "Encaboxar" + "DIALOG_CANCEL": "Zarrar" } diff --git a/msg/json/az.json b/msg/json/az.json index b9b03f168..edf7ff762 100644 --- a/msg/json/az.json +++ b/msg/json/az.json @@ -225,7 +225,7 @@ "TEXT_PROMPT_TOOLTIP_NUMBER": "İstifadəçiyə ədəd daxil etməsi üçün sorğu/tələb göndərin.", "TEXT_PROMPT_TOOLTIP_TEXT": "İstifadəçiyə mətn daxil etməsi üçün sorğu/tələb göndərin.", "TEXT_COUNT_MESSAGE0": "%2 içindən %1 sayını hesabla", - "TEXT_COUNT_TOOLTIP": "Hesablayaq, mətnin bu hissəsi başqa mətndə neçə dəfə rast gəlinir.", + "TEXT_COUNT_TOOLTIP": "Hesablayaq, mətnin bu hissəsi başqa mətndə neçə dəfə rast gəlinir.", "TEXT_REPLACE_MESSAGE0": "%3 -də %1 əvəz et %2", "TEXT_REPLACE_TOOLTIP": "Bütün uyğunluqlu bəzi mətnlərin digər bəzi mətnlərə dəyişdirilməsi.", "TEXT_REVERSE_MESSAGE0": "əksinə dəyiş %1", diff --git a/msg/json/ba.json b/msg/json/ba.json index aec94ee4a..87a8fddb8 100644 --- a/msg/json/ba.json +++ b/msg/json/ba.json @@ -18,7 +18,7 @@ "EXTERNAL_INPUTS": "Тышҡы өҫтәлмә", "INLINE_INPUTS": "Эске өҫтәлмә", "DELETE_BLOCK": "Блокты юйҙырырға", - "DELETE_X_BLOCKS": " %1 блокты юйҙырырға", + "DELETE_X_BLOCKS": "%1 блокты юйҙырырға", "DELETE_ALL_BLOCKS": "Бөтә %1 блоктарҙы юйырғамы?", "CLEAN_UP": "Блоктарҙы таҙартырға", "COLLAPSE_BLOCK": "Блокты төрөргә", @@ -50,7 +50,7 @@ "COLOUR_BLEND_RATIO": "1-се төҫтөң өлөшө", "COLOUR_BLEND_TOOLTIP": "Ике төҫтө бирелгән нисбәттә болғата (0.0 - 1.0).", "CONTROLS_REPEAT_HELPURL": "https://en.wikipedia.org/wiki/Цикл_(программалау)", - "CONTROLS_REPEAT_TITLE": " %1 тапҡыр ҡабатларға", + "CONTROLS_REPEAT_TITLE": "%1 тапҡыр ҡабатларға", "CONTROLS_REPEAT_INPUT_DO": "үтәргә", "CONTROLS_REPEAT_TOOLTIP": "Командаларҙы бер нисә тапҡыр үтәй.", "CONTROLS_WHILEUNTIL_OPERATOR_WHILE": "ҡабатларға, әлегә", @@ -145,7 +145,7 @@ "MATH_ONLIST_OPERATOR_MIN": "Исемлектәге иң бәләкәйе", "MATH_ONLIST_TOOLTIP_MIN": "Исемлектәге иң бәләкәй һанды күрһәтә.", "MATH_ONLIST_OPERATOR_MAX": "исемлектәге иң ҙуры", - "MATH_ONLIST_TOOLTIP_MAX": "Исемлектең иң ҙур һанын күрһәтә.", + "MATH_ONLIST_TOOLTIP_MAX": "Исемлектең иң ҙур һанын күрһәтә.", "MATH_ONLIST_OPERATOR_AVERAGE": "исемлектең уртаса арифметик дәүмәле", "MATH_ONLIST_TOOLTIP_AVERAGE": "Исемлектең уртаса арифметик дәүмәле күрһәтә.", "MATH_ONLIST_OPERATOR_MEDIAN": "исемлек медианаһы", @@ -207,5 +207,5 @@ "PROCEDURES_MUTATORARG_TITLE": "инеү исеме:", "PROCEDURES_CREATE_DO": "'%1' төҙөргә", "DIALOG_OK": "Яҡшы", - "DIALOG_CANCEL": " Баш тартыу" + "DIALOG_CANCEL": "Баш тартыу" } diff --git a/msg/json/bcc.json b/msg/json/bcc.json index c405b74b2..f4356e46d 100644 --- a/msg/json/bcc.json +++ b/msg/json/bcc.json @@ -12,7 +12,7 @@ "TODAY": "مرۏچی", "DUPLICATE_BLOCK": "تکراری", "ADD_COMMENT": "افزودن نظر", - "REMOVE_COMMENT": "حذف نظر", + "REMOVE_COMMENT": "گپءِ کار کنگ", "EXTERNAL_INPUTS": "ورودی‌های خارجی", "INLINE_INPUTS": "ورودی‌های درون خطی", "DELETE_BLOCK": "بلاکءِ گار کنگ", @@ -51,7 +51,7 @@ "CONTROLS_WHILEUNTIL_OPERATOR_UNTIL": "تکرار تا", "CONTROLS_WHILEUNTIL_TOOLTIP_WHILE": "تا زمانی که یک مقدار صحیح است، چند عبارت را انجام بده.", "CONTROLS_WHILEUNTIL_TOOLTIP_UNTIL": "تا زمانی که یک مقدار ناصحیح است، چند عبارت را انجام بده.", - "CONTROLS_FOR_TOOLTIP": "متغیر %1 را در مقادیر شروع‌شده از عدد انتهای به عدد انتهایی را دارد، با فواصل مشخص‌شده می‌شمارد و این بلوک مشخص‌شده را انجام می‌دهد.", + "CONTROLS_FOR_TOOLTIP": "متغیر %1 را در مقادیر شروع‌شده از عدد انتهای به عدد انتهایی را دارد، با فواصل مشخص‌شده می‌شمارد و این بلوک مشخص‌شده را انجام می‌دهد.", "CONTROLS_FOR_TITLE": "با تعداد %1 از %2 به %3 با گام‌های %4", "CONTROLS_FOREACH_TITLE": "برای هر مورد %1 در فهرست %2", "CONTROLS_FOREACH_TOOLTIP": "برای هر مورد در این فهرست، تنظیم متغیر «%1» به مورد و انجام تعدادی عبارت.", @@ -198,9 +198,9 @@ "TEXT_CHANGECASE_OPERATOR_LOWERCASE": "به حروف کوچک", "TEXT_CHANGECASE_OPERATOR_TITLECASE": "به حروف بزرگ عنوان", "TEXT_TRIM_TOOLTIP": "کپی از متن با فاصله‌های حذف‌شده از یک یا هر دو پایان باز می‌گرداند.", - "TEXT_TRIM_OPERATOR_BOTH": "تراشیدن فاصله‌ها از هر دو طرف", - "TEXT_TRIM_OPERATOR_LEFT": "تراشیدن فاصله‌ها از طرف چپ", - "TEXT_TRIM_OPERATOR_RIGHT": "تراشیدن فاصله‌ها از طرف چپ", + "TEXT_TRIM_OPERATOR_BOTH": "تراشیدن فاصله‌ها از هر دو طرف", + "TEXT_TRIM_OPERATOR_LEFT": "تراشیدن فاصله‌ها از طرف چپ", + "TEXT_TRIM_OPERATOR_RIGHT": "تراشیدن فاصله‌ها از طرف چپ", "TEXT_PRINT_TITLE": "چاپ %1", "TEXT_PRINT_TOOLTIP": "چاپ متن، عدد یا هر مقدار دیگر مشخص‌شده.", "TEXT_PROMPT_TYPE_TEXT": "اعلان برای متن با پیام", diff --git a/msg/json/be-tarask.json b/msg/json/be-tarask.json index 26db3ce69..6d5e0ff19 100644 --- a/msg/json/be-tarask.json +++ b/msg/json/be-tarask.json @@ -40,6 +40,7 @@ "NEW_VARIABLE_TITLE": "Імя новай зьменнай:", "VARIABLE_ALREADY_EXISTS": "Зьменная з назвай «%1» ужо існуе.", "VARIABLE_ALREADY_EXISTS_FOR_ANOTHER_TYPE": "Зьменная з назвай «%1» ужо існуе зь іншым тыпам: «%2».", + "VARIABLE_ALREADY_EXISTS_FOR_A_PARAMETER": "Зьменная з назвай '%1' ужо існуе як парамэтар працэдуры '%2'.", "DELETE_VARIABLE_CONFIRMATION": "Выдаліць %1 выкарыстаньняў зьменнай «%2»?", "CANNOT_DELETE_VARIABLE_PROCEDURE": "Немагчыма выдаліць зьменную «%1», таму што яна зьяўляецца часткай вызначэньня функцыі «%2»", "DELETE_VARIABLE": "Выдаліць зьменную «%1»", @@ -107,6 +108,12 @@ "LOGIC_TERNARY_TOOLTIP": "Праверыць умову ў 'тэст'. Калі ўмова праўдзівая, будзе вернутае значэньне «калі ісьціна»; інакш будзе вернутае «калі хлусьня».", "MATH_NUMBER_HELPURL": "https://be-x-old.wikipedia.org/wiki/%D0%9B%D1%96%D0%BA", "MATH_NUMBER_TOOLTIP": "Лік.", + "MATH_TRIG_SIN": "sin", + "MATH_TRIG_COS": "cos", + "MATH_TRIG_TAN": "tan", + "MATH_TRIG_ASIN": "asin", + "MATH_TRIG_ACOS": "acos", + "MATH_TRIG_ATAN": "atan", "MATH_ARITHMETIC_HELPURL": "https://be-x-old.wikipedia.org/wiki/%D0%90%D1%80%D1%8B%D1%82%D0%BC%D1%8D%D1%82%D1%8B%D0%BA%D0%B0", "MATH_ARITHMETIC_TOOLTIP_ADD": "Вяртае суму двух лікаў.", "MATH_ARITHMETIC_TOOLTIP_MINUS": "Вяртае рознасьць двух лікаў.", @@ -243,6 +250,7 @@ "LISTS_GET_INDEX_GET": "атрымаць", "LISTS_GET_INDEX_GET_REMOVE": "атрымаць і выдаліць", "LISTS_GET_INDEX_REMOVE": "выдаліць", + "LISTS_GET_INDEX_FROM_START": "№", "LISTS_GET_INDEX_FROM_END": "№ з канца", "LISTS_GET_INDEX_FIRST": "першы", "LISTS_GET_INDEX_LAST": "апошні", diff --git a/msg/json/bg.json b/msg/json/bg.json index 475216052..66cfde41a 100644 --- a/msg/json/bg.json +++ b/msg/json/bg.json @@ -23,7 +23,7 @@ "INLINE_INPUTS": "Вътрешни входове", "DELETE_BLOCK": "Изтрий блок", "DELETE_X_BLOCKS": "Изтрий %1 блока", - "DELETE_ALL_BLOCKS": "Изтриване на всички 1% блокове?", + "DELETE_ALL_BLOCKS": "Изтриване на всички %1 блокове?", "CLEAN_UP": "Премахни блокове", "COLLAPSE_BLOCK": "Скрий блок", "COLLAPSE_ALL": "Скрий блокове", @@ -141,7 +141,7 @@ "MATH_TRIG_TOOLTIP_ASIN": "Върни аркуссинус от число.", "MATH_TRIG_TOOLTIP_ACOS": "Върни аркускосинус от число.", "MATH_TRIG_TOOLTIP_ATAN": "Върни аркустангенс от число.", - "MATH_CONSTANT_HELPURL": "http://bg.wikipedia.org/wiki/Константа", + "MATH_CONSTANT_HELPURL": "https://bg.wikipedia.org/wiki/Константа", "MATH_CONSTANT_TOOLTIP": "Връща една от често срещаните константи: π (3.141...), e (2.718...), φ (1.618...), sqrt(2) (1.414...), sqrt(½) (0.707...) или ∞ (безкрайност).", "MATH_IS_EVEN": "е четно", "MATH_IS_ODD": "е нечетно", @@ -174,7 +174,7 @@ "MATH_ONLIST_TOOLTIP_STD_DEV": "Връща стандартното отклонение на списъка.", "MATH_ONLIST_OPERATOR_RANDOM": "случаен елемент от списъка", "MATH_ONLIST_TOOLTIP_RANDOM": "Върни случаен елемент от списъка.", - "MATH_MODULO_HELPURL": "http://bg.wikipedia.org/wiki/Остатък", + "MATH_MODULO_HELPURL": "https://bg.wikipedia.org/wiki/Остатък", "MATH_MODULO_TITLE": "остатъка от делението на %1 на %2", "MATH_MODULO_TOOLTIP": "Върни остатъка от деление на две числа.", "MATH_CONSTRAIN_TITLE": "ограничи %1 между %2 и %3", diff --git a/msg/json/bn.json b/msg/json/bn.json index 3b5491165..115b415ab 100644 --- a/msg/json/bn.json +++ b/msg/json/bn.json @@ -67,7 +67,7 @@ "CONTROLS_FOR_TOOLTIP": "চলক %1 প্রস্তুত করুন, শুরু থেকে শেষ পর্যন্ত সংখ্যা গ্রহন করতে যা নির্দেশিত বিরতি গণনা করছে এবং নির্দেশিত ব্লক সমূহ সম্পন্ন করতে।", "CONTROLS_FOR_TITLE": "গণনা কর %1 %4 দিয়ে %2 থেকে %3", "CONTROLS_FOREACH_TITLE": "প্রত্যেকটি পদের জন্য %1 তালিকার মধ্যে %2", - "CONTROLS_FOREACH_TOOLTIP": "কোন তালিকায় প্রতিবারের জন্য, আইটেমের সাথে চলক '%1' বসান এবং কিছু বিবরণ দিন।", + "CONTROLS_FOREACH_TOOLTIP": "কোনো তালিকায় প্রতিবারের জন্য, আইটেমের সাথে চলক '%1' বসান এবং কিছু বিবরণ দিন।", "CONTROLS_FLOW_STATEMENTS_OPERATOR_BREAK": "প্রবেশপথ থেকে চলে অাসুন", "CONTROLS_FLOW_STATEMENTS_OPERATOR_CONTINUE": "পুনরাবৃত্তি চালিয়ে যান পরবর্তী প্রবেশপথে", "CONTROLS_FLOW_STATEMENTS_TOOLTIP_BREAK": "সংশ্লিষ্ট প্রবেশপথ থেকে চলে অাসুন", @@ -88,7 +88,7 @@ "LOGIC_COMPARE_TOOLTIP_GTE": "পাঠাবে সত্য যদি প্রথম ইনপুট দ্বিতীয় ইনপুট থেকে বড় অথবা সমান হয়।", "LOGIC_OPERATION_TOOLTIP_AND": "পাঠাবে সত্য যদি উভয় ইনপুটই সত্য হয়।", "LOGIC_OPERATION_AND": "এবং", - "LOGIC_OPERATION_TOOLTIP_OR": "পাঠাবে সত্য যদি অন্ততপক্ষে যেকোন একটি ইনপুট সত্য হয়।", + "LOGIC_OPERATION_TOOLTIP_OR": "পাঠাবে সত্য যদি অন্ততপক্ষে যেকোনো একটি ইনপুট সত্য হয়।", "LOGIC_OPERATION_OR": "অথবা", "LOGIC_NEGATE_TITLE": "%1 নয়", "LOGIC_NEGATE_TOOLTIP": "পাঠাবে সত্য যদি ইনপুট মিথ্যা হয়। পাঠাবে মিথ্যা যদি ইনপুট সত্য হয়।", @@ -145,8 +145,8 @@ "TEXT_PRINT_TITLE": "%1 মুদ্রণ করুন", "TEXT_REVERSE_MESSAGE0": "%1 উল্টান", "LISTS_CREATE_EMPTY_TITLE": "খালি তালিকা তৈরি করুন", - "LISTS_CREATE_EMPTY_TOOLTIP": "পাঠাবে একটি তালিকা, দের্ঘ্য হবে ০, কোন উপাত্ত থাকবে না", - "LISTS_CREATE_WITH_TOOLTIP": "যেকোন সংখ্যক পদ নিয়ে একটি তালিকা তৈরি করুন।", + "LISTS_CREATE_EMPTY_TOOLTIP": "পাঠাবে একটি তালিকা, দের্ঘ্য হবে ০, কোনো উপাত্ত থাকবে না", + "LISTS_CREATE_WITH_TOOLTIP": "যেকোনো সংখ্যক পদ নিয়ে একটি তালিকা তৈরি করুন।", "LISTS_CREATE_WITH_CONTAINER_TITLE_ADD": "তালিকা", "LISTS_CREATE_WITH_ITEM_TOOLTIP": "তালিকায় একটি পদ যোগ করুন।", "LISTS_LENGTH_TITLE": "%1-এর দৈর্ঘ্য", @@ -165,7 +165,7 @@ "LISTS_GET_INDEX_RANDOM": "এলোমেলো", "LISTS_GET_INDEX_TOOLTIP_GET_FIRST": "তালিকার প্রথম পদটি পাঠাবে।", "LISTS_GET_INDEX_TOOLTIP_GET_LAST": "তালিকার শেষ পদটি পাঠাবে।", - "LISTS_GET_INDEX_TOOLTIP_GET_RANDOM": "এলোমেলোভাবে তালিকার যেকোন একটি পদ পাঠাবে।", + "LISTS_GET_INDEX_TOOLTIP_GET_RANDOM": "এলোমেলোভাবে তালিকার যেকোনো একটি পদ পাঠাবে।", "LISTS_GET_INDEX_TOOLTIP_GET_REMOVE_FIRST": "অপসারণ করুন এবং তালিকার প্রথম পদটি পাঠান।", "LISTS_GET_INDEX_TOOLTIP_GET_REMOVE_LAST": "অপসারণ করুন এবং তালিকার শেষ পদটি পাঠান।", "LISTS_GET_INDEX_TOOLTIP_GET_REMOVE_RANDOM": "অপসারণ করুন এবং তালিকার এলোমেলো একটি পদ পাঠান।", diff --git a/msg/json/br.json b/msg/json/br.json index 21f4b835c..59b033b53 100644 --- a/msg/json/br.json +++ b/msg/json/br.json @@ -45,7 +45,7 @@ "DELETE_VARIABLE_CONFIRMATION": "Lemel %1 implij eus an argemm '%2' ?", "CANNOT_DELETE_VARIABLE_PROCEDURE": "Ne ch'aller ket dilemel an argemmenn \"%1\" dre m'eo lod eus dielfennadur an arc'hwel \"%2\"", "DELETE_VARIABLE": "Lemel an argemm '%1'", - "COLOUR_PICKER_HELPURL": "http://br.wikipedia.org/wiki/Liv", + "COLOUR_PICKER_HELPURL": "https://br.wikipedia.org/wiki/Liv", "COLOUR_PICKER_TOOLTIP": "Dibab ul liv diwar al livaoueg.", "COLOUR_RANDOM_TITLE": "liv dargouezhek", "COLOUR_RANDOM_TOOLTIP": "Tennañ ul liv d'ar sord", @@ -137,7 +137,7 @@ "MATH_TRIG_TOOLTIP_ASIN": "Distreiñ ark sinuz un niver", "MATH_TRIG_TOOLTIP_ACOS": "Distreiñ ark kosinuz un niver", "MATH_TRIG_TOOLTIP_ATAN": "Distreiñ ark tangent un niver", - "MATH_CONSTANT_TOOLTIP": "Distreiñ unan eus digemmennoù red : π (3.141…), e (2.718…), φ (1.618…), sqrt(2) (1.414…), sqrt(½) (0.707…), or ∞ (anvevenn).", + "MATH_CONSTANT_TOOLTIP": "Distreiñ unan eus digemmennoù red : π (3.141…), e (2.718…), φ (1.618…), sqrt(2) (1.414…), sqrt(½) (0.707…), or ∞ (anvevenn).", "MATH_IS_EVEN": "zo par", "MATH_IS_ODD": "zo ampar", "MATH_IS_PRIME": "zo kentañ", diff --git a/msg/json/ce.json b/msg/json/ce.json new file mode 100644 index 000000000..a6937aa74 --- /dev/null +++ b/msg/json/ce.json @@ -0,0 +1,326 @@ +{ + "@metadata": { + "authors": [ + "Саид Мисарбиев", + "Умар" + ] + }, + "VARIABLES_DEFAULT_NAME": "элемент", + "UNNAMED_KEY": "цӀе йац", + "TODAY": "Тахана", + "DUPLICATE_BLOCK": "Копи йан", + "ADD_COMMENT": "ТӀетоха коммент", + "REMOVE_COMMENT": "ДӀайаккха коммент", + "DUPLICATE_COMMENT": "Комментарийн дубль йар", + "EXTERNAL_INPUTS": "Йллар арахула", + "INLINE_INPUTS": "Йллар чухула", + "DELETE_BLOCK": "ДӀайаккха блок", + "DELETE_X_BLOCKS": "ДӀайаха %1 блокаш", + "DELETE_ALL_BLOCKS": "ДӀайаха йерриге блокаш (%1)?", + "CLEAN_UP": "ДӀайаха блокаш", + "COLLAPSE_BLOCK": "Къайлайаккха блок", + "COLLAPSE_ALL": "Къайлайаха блокаш", + "EXPAND_BLOCK": "Гайта блок", + "EXPAND_ALL": "Гайта блокаш", + "DISABLE_BLOCK": "Блок дӀайаккха", + "ENABLE_BLOCK": "Латайе блок", + "HELP": "ГӀо", + "UNDO": "Йухадаккха", + "REDO": "Йухайерзор", + "CHANGE_VALUE_TITLE": "Хийца маьӀна:", + "RENAME_VARIABLE": "Хийцалун цӀе хийца...", + "RENAME_VARIABLE_TITLE": "Массо хийцалун цӀерш хийца '%1' тӀе:", + "NEW_VARIABLE": "Хийцалун цӀе кхолла...", + "NEW_STRING_VARIABLE": "МогӀанна хийцалург йе...", + "NEW_NUMBER_VARIABLE": "Терхьан хийцалург кхолла", + "NEW_COLOUR_VARIABLE": "Бесан хийцалург йе", + "NEW_VARIABLE_TYPE_TITLE": "Керла хийцалун цӀе:", + "NEW_VARIABLE_TITLE": "Керла хийцалун цӀе:", + "VARIABLE_ALREADY_EXISTS": "Хийцалург %1 цӀарца хӀинцале йолуш йу", + "VARIABLE_ALREADY_EXISTS_FOR_ANOTHER_TYPE": "Хийцалучун цӀе '%1' хӀинцале лелош кхечу тайпано: '%2'.", + "VARIABLE_ALREADY_EXISTS_FOR_A_PARAMETER": "Хийцалуг цӀарца '%1' хӀинцале йолуш ю процедурехь параметр '%2' хьокъехь.", + "DELETE_VARIABLE_CONFIRMATION": "ДӀадаккха %1 хийцалург лелор %2", + "CANNOT_DELETE_VARIABLE_PROCEDURE": "ДӀа ца даккхало хийцалург '%1', хӀунда аьлча иза дакъа долун дера функцин билгалонан '%2'", + "DELETE_VARIABLE": "ДӀайаккха хийцалург %1", + "COLOUR_PICKER_HELPURL": "https://ce.wikipedia.org/wiki/Бос", + "COLOUR_PICKER_TOOLTIP": "Харжа палитран чуьра бос.", + "COLOUR_RANDOM_TITLE": "цахууш нисбелла бос", + "COLOUR_RANDOM_TOOLTIP": "Бос ца хууш харжа", + "COLOUR_RGB_TITLE": "бос оцу чуьра", + "COLOUR_RGB_RED": "цӀен", + "COLOUR_RGB_GREEN": "баьццара", + "COLOUR_RGB_BLUE": "сийна", + "COLOUR_RGB_TOOLTIP": "Бос бо гайтина пропорцица цӀен, баьццара, сийна. Массо а беснаш 0 а, 100 а йукъахь хила деза.", + "COLOUR_BLEND_TITLE": "иэде", + "COLOUR_BLEND_COLOUR1": "Бос 1", + "COLOUR_BLEND_COLOUR2": "бос 2", + "COLOUR_BLEND_RATIO": "бесан дакъа 1", + "COLOUR_BLEND_TOOLTIP": "Ши бос иэбе йеллачу йуъкъаметтигехь (0.0-1.0).", + "CONTROLS_REPEAT_TITLE": "%1 йуха арда", + "CONTROLS_REPEAT_INPUT_DO": "кхочушде", + "CONTROLS_REPEAT_TOOLTIP": "Кхочушдо цхьадолу омарш", + "CONTROLS_WHILEUNTIL_OPERATOR_WHILE": "йухаала, цкъачунна", + "CONTROLS_WHILEUNTIL_OPERATOR_UNTIL": "йухадан, цкъачунна ца оьшу", + "CONTROLS_WHILEUNTIL_TOOLTIP_WHILE": "МаьӀна нийса мел ду, омарш кхочушдо.", + "CONTROLS_WHILEUNTIL_TOOLTIP_UNTIL": "МаьӀна харц мел ду, омар кхочушдо.", + "CONTROLS_FOR_TOOLTIP": "Ло хийцалун '%1' маьӀнаш йуьхьнцара чеккхенгара йелла гӀулч, кхочушдо гайтина омарш.", + "CONTROLS_FOR_TITLE": "цикл %1 %2 тӀера %3 тӀекхачалц гӀулчца %4", + "CONTROLS_FOREACH_TITLE": "хӀора элементан %1 испискехь %2", + "CONTROLS_FOREACH_TOOLTIP": "Испискера хӀора дакъалган, ло хийцалун '%1' дакъалган маьӀна, кхочушдо гайтина омарш.", + "CONTROLS_FLOW_STATEMENTS_OPERATOR_BREAK": "циклера аравалар", + "CONTROLS_FLOW_STATEMENTS_OPERATOR_CONTINUE": "циклан кхечу гӀулч тӀевала", + "CONTROLS_FLOW_STATEMENTS_TOOLTIP_BREAK": "И цикл йукъахйолу", + "CONTROLS_FLOW_STATEMENTS_TOOLTIP_CONTINUE": "Йисина цикл чекхйолийтий, дехьайолу кхечу гӀулчан", + "CONTROLS_FLOW_STATEMENTS_WARNING": "ДӀахьедар: и блок лело мега йеккъа циклан чоьхьахь.", + "CONTROLS_IF_TOOLTIP_1": "МаьӀна нийса мел ду, омарш кхочушдо.", + "CONTROLS_IF_TOOLTIP_2": "Нагахь биллам нийса балахь, омарийн хьалхара блок кхочушйо. Кхечу агӀора шолгӀа блок кхочушйо.", + "CONTROLS_IF_TOOLTIP_3": "Нагахь хьалхара биллам бакъ балахь, тӀаккха кхочушйо омарийн хьалхара блок. Кхечу агӀор кхочуш йо омарийн шолгӀа блок.", + "CONTROLS_IF_TOOLTIP_4": "Нагахь хьалхара биллам нийса балахь, тӀаккха кхочушдо омарийн хьалхара блок. ШолгӀа биллам нийса балахь кхочушдо омарийн шолгӀа блок. Нагахь цхьан а нийса йацахь, кхочушйо тӀаьххьара омарийн блок.", + "CONTROLS_IF_MSG_IF": "нагахь", + "CONTROLS_IF_MSG_ELSEIF": "нагахь кхечу агӀор", + "CONTROLS_IF_MSG_ELSE": "кхин а", + "CONTROLS_IF_IF_TOOLTIP": "ТӀетоха, дӀайаккха, дехьайаккха блок йухайан дакъалгаш.", + "CONTROLS_IF_ELSEIF_TOOLTIP": "ТӀетоха блокан биллам", + "CONTROLS_IF_ELSE_TOOLTIP": "ТӀетоха тӀаьххьара бухара блок, массо биллам харц хилча.", + "LOGIC_COMPARE_TOOLTIP_EQ": "Нагахь чудаьхнарш тера делахь, йухадогӀу аьтту маьӀна.", + "LOGIC_COMPARE_TOOLTIP_NEQ": "Нагахь чудаьхнарш тера дацахь, йухадогӀу аьтту болу маьӀнаш.", + "LOGIC_COMPARE_TOOLTIP_LT": "Нагахь хьалха чудаьккхинарг кӀезиг делахь шолгӀачул, йухадогӀу аьтту маьӀна.", + "LOGIC_COMPARE_TOOLTIP_LTE": "Хьалха чуйаьккхинарг кӀезиг йалахь шолгӀачул йа и санна йалахь, йухадогӀу бакъ долу маӀна.", + "LOGIC_COMPARE_TOOLTIP_GT": "Нагахь хьалхара диллар шолгӀачул дукха делахь, йухадогӀу бакъ долу маьӀна", + "LOGIC_COMPARE_TOOLTIP_GTE": "Хьалха чуйаьккхинарг кӀезиг йалахь шолгӀачул йа и санна йалахь, йухадогӀу бакъ долу маӀна.", + "LOGIC_OPERATION_TOOLTIP_AND": "Нагахь ший а диллар нийса делахь, йухадогӀу бакъ долу маьӀна.", + "LOGIC_OPERATION_AND": "а,", + "LOGIC_OPERATION_TOOLTIP_OR": "Цхьа диллар мукъане а нийса делахь, йухадаладо бакъ долу маьӀна.", + "LOGIC_OPERATION_OR": "йа", + "LOGIC_NEGATE_TITLE": "хӀанхӀа %1", + "LOGIC_NEGATE_TOOLTIP": "Нагахь диллар харц далахь, йухадерзадо бакъ долу маьӀна. Нагахь диллар нийса делахь, йухадерзадо харц маьӀна.", + "LOGIC_BOOLEAN_TRUE": "бакъдерг", + "LOGIC_BOOLEAN_FALSE": "харц дерг", + "LOGIC_BOOLEAN_TOOLTIP": "Йухадерзадо бакъ йа харц долу маьӀна", + "LOGIC_NULL": "ХӀумма а доцург", + "LOGIC_NULL_TOOLTIP": "Йухайерзайо хӀумма а йоцург", + "LOGIC_TERNARY_CONDITION": "харжа", + "LOGIC_TERNARY_IF_TRUE": "нагахь бакъ делахь", + "LOGIC_TERNARY_IF_FALSE": "нагахь харц делахь", + "LOGIC_TERNARY_TOOLTIP": "Толлу харжаман хьал. Нагахь хьал бакъ делахь, йухадерзадо хьалхара маьӀна, кхечу агӀор йухадерзадо шолгӀа маьӀна.", + "MATH_NUMBER_TOOLTIP": "Лоьмар", + "MATH_TRIG_SIN": "къа", + "MATH_TRIG_COS": "хӀунда аьлча", + "MATH_TRIG_TAN": "вагавар", + "MATH_TRIG_ASIN": "муха", + "MATH_TRIG_ACOS": "акос", + "MATH_TRIG_ATAN": "вагавар", + "MATH_ARITHMETIC_TOOLTIP_ADD": "йухайерзор ду ши терахь вовшахтоьхна лоьмар", + "MATH_ARITHMETIC_TOOLTIP_MINUS": "йухадерзор ду тӀера дӀадаьккхина ши терахь", + "MATH_ARITHMETIC_TOOLTIP_MULTIPLY": "Йухадерзор ду шозза эцна терахь", + "MATH_ARITHMETIC_TOOLTIP_DIVIDE": "Йухадерзор ду доькъург доькъучу хьалхара терхьах шолгӀачун", + "MATH_ARITHMETIC_TOOLTIP_POWER": "Йухадерзадо хьалхар терахь, айина долу шолгӀачу терхьан дарже.", + "MATH_SINGLE_OP_ROOT": "БеакӀов орам", + "MATH_SINGLE_TOOLTIP_ROOT": "Йухаберзабо терхьан беакӀов орам", + "MATH_SINGLE_OP_ABSOLUTE": "дуьззина", + "MATH_SINGLE_TOOLTIP_ABS": "Йухадерзадо дуьззина терахь", + "MATH_SINGLE_TOOLTIP_NEG": "Йухадерзадо дуьхь-дуьхьал долу терхьаш", + "MATH_SINGLE_TOOLTIP_LN": "Йухадерзадо терхьан бакъ йолу логарифм.", + "MATH_SINGLE_TOOLTIP_LOG10": "Йухайерзайо терхьан иттаннийн логарифм", + "MATH_SINGLE_TOOLTIP_EXP": "Йухайерзайо гайтинчу даржехь.", + "MATH_SINGLE_TOOLTIP_POW10": "Йухайерзайо 10 гайтинчу даржехь", + "MATH_TRIG_TOOLTIP_SIN": "Йухайерзайо сенан маьӀиг градусашкахь", + "MATH_TRIG_TOOLTIP_COS": "Йухайерзайо сенан косинус градусашкахь.", + "MATH_TRIG_TOOLTIP_TAN": "Йухайерзайо тангенсан сенан маьӀиг градусашкахь", + "MATH_TRIG_TOOLTIP_ASIN": "Йухайерзайо арксинус (градусашкахь).", + "MATH_TRIG_TOOLTIP_ACOS": "Йухайерзайе терхьан арккосинус (градусашкахь)", + "MATH_TRIG_TOOLTIP_ATAN": "Йухайерзайе арктангенс (градусашкахь)", + "MATH_CONSTANT_TOOLTIP": "Йухайерзайо уггаре йаьржина констатех цхьаъ: π (3.141...), e (2.718...), φ (1.618...), sqrt(2) (1.414...), sqrt(½) (0.707...), ∞ (чеккхейоцург).", + "MATH_IS_EVEN": "Чоьтан", + "MATH_IS_ODD": "Чоьтан йоцу", + "MATH_IS_PRIME": "атта", + "MATH_IS_WHOLE": "дийна", + "MATH_IS_POSITIVE": "аьтту болуш", + "MATH_IS_NEGATIVE": "аьтту боцуш", + "MATH_IS_DIVISIBLE_BY": "декъало", + "MATH_IS_TOOLTIP": "Толлу, дуй теша терахь шала, шалза, атта, дийна, аьтту, аьттунза йа иза декъало билгалчу терахьан. Йухадерзадо маьӀна бакъ дерг йа харц дерг.", + "MATH_CHANGE_TITLE": "доккха дан %1 тӀера %2", + "MATH_CHANGE_TOOLTIP": "ТӀетоха хийцалун терахь %1", + "MATH_ROUND_TOOLTIP": "Горгдан лакха йа лаха", + "MATH_ROUND_OPERATOR_ROUND": "горгдан", + "MATH_ROUND_OPERATOR_ROUNDUP": "Горгдан лакха", + "MATH_ROUND_OPERATOR_ROUNDDOWN": "Ден дан лаха", + "MATH_ONLIST_OPERATOR_SUM": "исписка вовшахтоьхна", + "MATH_ONLIST_TOOLTIP_SUM": "Испискера терахьийн жамӀ йухадерзадо", + "MATH_ONLIST_OPERATOR_MIN": "испискехь уггаре кӀезганиг", + "MATH_ONLIST_TOOLTIP_MIN": "Йузадерзадо уггаре кӀезга терахь испискера", + "MATH_ONLIST_OPERATOR_MAX": "испискера уггаре дукханиг", + "MATH_ONLIST_TOOLTIP_MAX": "Исписмкера уггаре дукха терахь йухадерзадо", + "MATH_ONLIST_OPERATOR_AVERAGE": "Йуккъера арифметикан исписка", + "MATH_ONLIST_TOOLTIP_AVERAGE": "Испискера йуккъера арифметикан йухадерзадо.", + "MATH_ONLIST_OPERATOR_MEDIAN": "испискан медиана", + "MATH_ONLIST_TOOLTIP_MEDIAN": "Испискан медиана йухадерзадо", + "MATH_ONLIST_OPERATOR_MODE": "испискан моданаш", + "MATH_ONLIST_TOOLTIP_MODE": "Испискан дукха хаалуш долу дакъалг исписке йухадерзадо.", + "MATH_ONLIST_OPERATOR_STD_DEV": "испискехь стандартан дӀахилар", + "MATH_ONLIST_TOOLTIP_STD_DEV": "Йухадерзадо испискан стандартан дӀахилар", + "MATH_ONLIST_OPERATOR_RANDOM": "испискан цахууш хилла дакъалг", + "MATH_ONLIST_TOOLTIP_RANDOM": "Испискехь цахууш хилла дакъалг йухадерзадо", + "MATH_MODULO_TITLE": "Йисина %1 тӀера %2 кхаччалц", + "MATH_MODULO_TOOLTIP": "Ши терахь вовшенна декъча бухадисинарг.", + "MATH_CONSTRAIN_TITLE": "дозатуху %1 лахахь %2 лакхахь %3", + "MATH_CONSTRAIN_TOOLTIP": "Дозатуху лахара а, лакхара а дозанца.", + "MATH_RANDOM_INT_TITLE": "цӀеххьана нисделла дийна терахь %1 тӀера %2 кхаччалц", + "MATH_RANDOM_INT_TOOLTIP": "Йухадерзадо цӀеххьана нисделла шина дозанна йукъара.", + "MATH_RANDOM_FLOAT_TITLE_RANDOM": "0.0 тӀера 1.0 кхаччалц (йукъахь долуш) цӀеххана нисделла дийна терахь", + "MATH_RANDOM_FLOAT_TOOLTIP": "Йухедерзадо цӀеххьана нисделла дийна терахь 0.0 тӀера 1.0 кхаччалц", + "MATH_ATAN2_TITLE": "atan2 от X:%1 Y:%2", + "MATH_ATAN2_TOOLTIP": "Йухайерхайо меттиг (X, Y) арктангенс градусашкахь -180 тӀера 180 кхаччалц.", + "TEXT_TEXT_TOOLTIP": "Элп, дош, могӀам йозанехь.", + "TEXT_JOIN_TITLE_CREATEWITH": "кхолла могӀам", + "TEXT_JOIN_TOOLTIP": "Вовшах тосу муьлхха дакъалган терахь, кхуллу йозанан кийсиг", + "TEXT_CREATE_JOIN_TITLE_JOIN": "вовшахтаса", + "TEXT_CREATE_JOIN_TOOLTIP": "ТӀетоха, дӀайаккха, дехьайаккха блок йухайан дакъалгаш.", + "TEXT_CREATE_JOIN_ITEM_TOOLTIP": "ТӀетоха йозанан дакъалг", + "TEXT_APPEND_TITLE": "%1 тӀетоха йоза %2", + "TEXT_APPEND_TOOLTIP": "ТӀетоха йоза хийцалучунна \"%1\"", + "TEXT_LENGTH_TITLE": "дохалла %1", + "TEXT_LENGTH_TOOLTIP": "Йухадерзадо сийлаллин терахь деллачу йозанехь", + "TEXT_ISEMPTY_TITLE": "%1 деса ду", + "TEXT_ISEMPTY_TOOLTIP": "Нагахь йоза деса делахь, йухадерзадо бакъ долу маьӀна.", + "TEXT_INDEXOF_TOOLTIP": "Йухайерзайо лоьмар хьалхара/тӀаьххьара хьалхара йоза шолгӀачун чуваларан меттиган. Йухайерзайо %1, нагахь йоза ца карийнехь.", + "TEXT_INDEXOF_TITLE": "Йозанехь %1, %2, %3", + "TEXT_INDEXOF_OPERATOR_FIRST": "Караде хьалхара йозанера чувалар", + "TEXT_INDEXOF_OPERATOR_LAST": "караде тӀаьххьара чувалар йозанан", + "TEXT_CHARAT_TITLE": "Йозанехь %1, %2", + "TEXT_CHARAT_FROM_START": "№ йолу элп схьаэца", + "TEXT_CHARAT_FROM_END": "№ йолу элп схьаэца тӀехььара", + "TEXT_CHARAT_FIRST": "хьалхара элп схьаэца", + "TEXT_CHARAT_LAST": "тӀаьххьара элп схьаэца", + "TEXT_CHARAT_RANDOM": "Схаэца ца хоржуш элп", + "TEXT_CHARAT_TOOLTIP": "Йухадерзадо элп гайтинчу меттиге", + "TEXT_GET_SUBSTRING_TOOLTIP": "Йозанан гайтина дакъа йухадерзадо", + "TEXT_GET_SUBSTRING_INPUT_IN_TEXT": "Йозанехь", + "TEXT_GET_SUBSTRING_START_FROM_START": "Схьаэца бухара могӀа № йолу элпера", + "TEXT_GET_SUBSTRING_START_FROM_END": "Схьаэца бухара могӀа № йолу элпера тӀехьара", + "TEXT_GET_SUBSTRING_START_FIRST": "схьаэца бухара могӀа хьалхарчу элпера", + "TEXT_GET_SUBSTRING_END_FROM_START": "№ йолу элп схьаэца", + "TEXT_GET_SUBSTRING_END_FROM_END": "№ йолу элп схьаэца тӀехьара", + "TEXT_GET_SUBSTRING_END_LAST": "тӀаьххьара элп схьаэца", + "TEXT_CHANGECASE_TOOLTIP": "Йухайерзайо йозанан копи ХЬАЛХАРЧУ йа могӀанан элпашца", + "TEXT_CHANGECASE_OPERATOR_UPPERCASE": "ХЬАЛХАРЧУ ЭЛПАШКА", + "TEXT_CHANGECASE_OPERATOR_LOWERCASE": "могӀанан элпаш", + "TEXT_CHANGECASE_OPERATOR_TITLECASE": "Хьалхарчу Коьрта Элпашка", + "TEXT_TRIM_TOOLTIP": "Йухайерзайо йозанан копи генайаьккхина йукъ цхьаьна йа шинне а йуьххьера", + "TEXT_TRIM_OPERATOR_BOTH": "Йаккъаш дӀахедайар", + "TEXT_TRIM_OPERATOR_LEFT": "аьрру агӀор йукъ дӀахадайар", + "TEXT_TRIM_OPERATOR_RIGHT": "Аьтту агӀор йаккъаш дӀахедайе", + "TEXT_PRINT_TITLE": "Зорбатоха %1", + "TEXT_PRINT_TOOLTIP": "Зорбатуху йозанан, терахьан йа кхечу объектан", + "TEXT_PROMPT_TYPE_TEXT": "йоза деха дӀааларца", + "TEXT_PROMPT_TYPE_NUMBER": "терахь деха дӀааларца", + "TEXT_PROMPT_TOOLTIP_NUMBER": "Лелочунга терахь деха.", + "TEXT_PROMPT_TOOLTIP_TEXT": "Йоза деха лелочуьнга.", + "TEXT_COUNT_MESSAGE0": "Дагарде барам %1 %2", + "TEXT_COUNT_TOOLTIP": "Дагарде, мосазза йолу йозанан кийсиг кхечу йозанехь.", + "TEXT_REPLACE_MESSAGE0": "хийца %1 %2 %3", + "TEXT_REPLACE_TOOLTIP": "Хийца ша долу дерриг йозананна чуваларш, кхечу йозанца", + "TEXT_REVERSE_MESSAGE0": "хийца низам йуханехьа %1", + "TEXT_REVERSE_TOOLTIP": "Хуьйцу сийлаллин низам йуханехьа долчуьнца.", + "LISTS_CREATE_EMPTY_TITLE": "йеса исписка кхолла", + "LISTS_CREATE_EMPTY_TOOLTIP": "Йухайерзайо хаамаш болу йохаллин исписка 0", + "LISTS_CREATE_WITH_TOOLTIP": "Кхуллу исписка муьлххачу дакъалган терахьца.", + "LISTS_CREATE_WITH_INPUT_WITH": "кхолла могӀам", + "LISTS_CREATE_WITH_CONTAINER_TITLE_ADD": "Исписка", + "LISTS_CREATE_WITH_CONTAINER_TOOLTIP": "ТӀетоха, дӀайаккха, дехьайаккха блок йухайан дакъалгаш.", + "LISTS_CREATE_WITH_ITEM_TOOLTIP": "ТӀетоха йозанан дакъалг", + "LISTS_REPEAT_TOOLTIP": "Лаьтташ йолу дакъалган копин терахьех исписка кхуллу.", + "LISTS_REPEAT_TITLE": "кхолла дакъалг %1 исписка, йухайзйеш йолун %2", + "LISTS_LENGTH_TITLE": "дохалла %1", + "LISTS_LENGTH_TOOLTIP": "Йухайерзайо испискин йохалла", + "LISTS_ISEMPTY_TITLE": "%1 деса ду", + "LISTS_ISEMPTY_TOOLTIP": "Нагахь исписка йеса йелахь, йухадерзадо бакъдолчун маьӀна", + "LISTS_INLIST": "испискехь", + "LISTS_INDEX_OF_FIRST": "Караде хьалхара йозанера чувалар", + "LISTS_INDEX_OF_LAST": "караде тӀаьххьара чувалар йозанан", + "LISTS_INDEX_OF_TOOLTIP": "Йухайерзайо лоьмар хьалхара/тӀаьххьара хьалхара йоза шолгӀачун чуваларан меттиган. Йухайерзайо %1, нагахь йоза ца карийнехь.", + "LISTS_GET_INDEX_GET": "Схьаэца", + "LISTS_GET_INDEX_GET_REMOVE": "Схьаэца, дӀадаккха", + "LISTS_GET_INDEX_REMOVE": "дӀайаккха", + "LISTS_GET_INDEX_FROM_START": "№", + "LISTS_GET_INDEX_FROM_END": "№ тӀехьара", + "LISTS_GET_INDEX_FIRST": "хьалхара", + "LISTS_GET_INDEX_LAST": "тӀаьххьара", + "LISTS_GET_INDEX_RANDOM": "Нисделларг", + "LISTS_INDEX_FROM_START_TOOLTIP": "%1 - хьалхара дакъалг", + "LISTS_INDEX_FROM_END_TOOLTIP": "%1 - тӀаьххьара дакъалг", + "LISTS_GET_INDEX_TOOLTIP_GET_FROM": "Йухайерзайо дакъалг испискан гайтинчу меттиге.", + "LISTS_GET_INDEX_TOOLTIP_GET_FIRST": "Йухайерзайо испискан хьалхара дакъалг", + "LISTS_GET_INDEX_TOOLTIP_GET_LAST": "Йухайерзайо испискан тӀаьххьара дакъалг.", + "LISTS_GET_INDEX_TOOLTIP_GET_RANDOM": "Йухайерзайо испискан ца хууш нисделла дакъалг.", + "LISTS_GET_INDEX_TOOLTIP_GET_REMOVE_FROM": "Йухайерзайо дакъалг испискан гайтинчу меттиге.", + "LISTS_GET_INDEX_TOOLTIP_GET_REMOVE_FIRST": "ДӀа а йоккху, йуха а йалайо испискан хьалхара дакъалг", + "LISTS_GET_INDEX_TOOLTIP_GET_REMOVE_LAST": "ДӀа а йоккху, йуха а йалайо испискан хьалхара дакъалг", + "LISTS_GET_INDEX_TOOLTIP_GET_REMOVE_RANDOM": "ДӀа а йоккху, йуха а йалайо испискан ца хууш нисделла дакъалг", + "LISTS_GET_INDEX_TOOLTIP_REMOVE_FROM": "ДӀадоккху дакъалг испискан гайтинчу меттиге.", + "LISTS_GET_INDEX_TOOLTIP_REMOVE_FIRST": "ДӀадоккху испискан хьалхара дакъалг", + "LISTS_GET_INDEX_TOOLTIP_REMOVE_LAST": "ДӀадоккху испискан тӀаьххьара дакъалг.", + "LISTS_GET_INDEX_TOOLTIP_REMOVE_RANDOM": "ДӀадоккху испискан ца хууш нисделла дакъалг.", + "LISTS_SET_INDEX_SET": "дола йаккха", + "LISTS_SET_INDEX_INSERT": "чухӀоттайе", + "LISTS_SET_INDEX_INPUT_TO": "=", + "LISTS_SET_INDEX_TOOLTIP_SET_FROM": "Ло дакъалг испискан гайтинчу меттиге.", + "LISTS_SET_INDEX_TOOLTIP_SET_FIRST": "Ло испискан хьалхара дакъалг маьӀна.", + "LISTS_SET_INDEX_TOOLTIP_SET_LAST": "Ло маьӀна испискан тӀаьххьара дакъалг.", + "LISTS_SET_INDEX_TOOLTIP_SET_RANDOM": "Ло испискан ца хууш нисделла дакъалган маьӀна.", + "LISTS_SET_INDEX_TOOLTIP_INSERT_FROM": "ЧухӀоттадо дакъалг испискан гайтинчу меттиге.", + "LISTS_SET_INDEX_TOOLTIP_INSERT_FIRST": "ЧухӀоттадо дакъалг испискан йуьххье", + "LISTS_SET_INDEX_TOOLTIP_INSERT_LAST": "ТӀетуху дакъалг испискин чаккхенга", + "LISTS_SET_INDEX_TOOLTIP_INSERT_RANDOM": "ЧухӀоттадо дакъалг ца хууш нисделлачу меттиге испискехь.", + "LISTS_GET_SUBLIST_START_FROM_START": "Схьаэца бухара исписка №", + "LISTS_GET_SUBLIST_START_FROM_END": "схьаэца бухара исписка № йолу т\\ехьара", + "LISTS_GET_SUBLIST_START_FIRST": "схьаэца бухара исписка хьалхарчуьнца", + "LISTS_GET_SUBLIST_END_FROM_START": "оцу №", + "LISTS_GET_SUBLIST_END_FROM_END": "№ тӀехьара", + "LISTS_GET_SUBLIST_END_LAST": "тӀехьара", + "LISTS_GET_SUBLIST_TOOLTIP": "Гайтина испискин декъера копи кхуллу.", + "LISTS_SORT_TITLE": "%1 %2 %3 сорт хӀоттайо", + "LISTS_SORT_TOOLTIP": "Испискан копин сорт хӀоттор", + "LISTS_SORT_ORDER_ASCENDING": "йоккха хиларца", + "LISTS_SORT_ORDER_DESCENDING": "кӀезиг хиларца", + "LISTS_SORT_TYPE_NUMERIC": "лоьмаран", + "LISTS_SORT_TYPE_TEXT": "абатца", + "LISTS_SORT_TYPE_IGNORECASE": "Абатца, регистран чот а ца лелош", + "LISTS_SPLIT_LIST_FROM_TEXT": "йозанах исписка йар", + "LISTS_SPLIT_TEXT_FROM_LIST": "йоза вовшахтоха испискех", + "LISTS_SPLIT_WITH_DELIMITER": "доькъучунца", + "LISTS_SPLIT_TOOLTIP_SPLIT": "Доькъу йоза йозанан испискан доькъучуьнца", + "LISTS_SPLIT_TOOLTIP_JOIN": "Вовшахтуху йозанийн исписка цхьаьна йозане доькъучуьнца.", + "LISTS_REVERSE_MESSAGE0": "хийца низам йуханехьа %1", + "LISTS_REVERSE_TOOLTIP": "Испискан низам йуханехьа хийца", + "VARIABLES_GET_TOOLTIP": "Оцу хийцалучун маьӀна хуьйцу", + "VARIABLES_GET_CREATE_SET": "Блок кхолла \"ло\" %1", + "VARIABLES_SET": "ло %1=%2", + "VARIABLES_SET_TOOLTIP": "Ло хийцалучн чухӀотточун маьӀна.", + "VARIABLES_SET_CREATE_GET": "Кхолла чухӀотториг %1", + "PROCEDURES_DEFNORETURN_TITLE": "хӀунда аьлча", + "PROCEDURES_DEFNORETURN_PROCEDURE": "кхочушдан цхьа хӀума", + "PROCEDURES_BEFORE_PARAMS": "дуьйна:", + "PROCEDURES_CALL_BEFORE_PARAMS": "дуьйна:", + "PROCEDURES_DEFNORETURN_TOOLTIP": "Кхуллу маьӀна йуха ца дерзош йолу процедура", + "PROCEDURES_DEFNORETURN_COMMENT": "Гайта и функци", + "PROCEDURES_DEFRETURN_RETURN": "йухадерзо", + "PROCEDURES_DEFRETURN_TOOLTIP": "Кхуллу маьӀна йуха дерзош йолу процедура", + "PROCEDURES_ALLOW_STATEMENTS": "операторшан пурба дала", + "PROCEDURES_DEF_DUPLICATE_WARNING": "ДӀахьедар: оцу функцин йух-йуха тӀейуйлу параметраш йу.", + "PROCEDURES_CALLNORETURN_TOOLTIP": "Кхочушйо лелочуьнан билгала процедура '%1'", + "PROCEDURES_CALLRETURN_TOOLTIP": "Кхочушйо лелочуьнан билгала процедура '%1', йухадерзадо лерина маьӀна", + "PROCEDURES_MUTATORCONTAINER_TITLE": "параметарш", + "PROCEDURES_MUTATORCONTAINER_TOOLTIP": "ТӀетоха, дӀадаккха йа хийца оцу чуйогӀу параметрийн функцеш.", + "PROCEDURES_MUTATORARG_TITLE": "параметран цӀе", + "PROCEDURES_MUTATORARG_TOOLTIP": "Чуволу параметран функци тӀетоха", + "PROCEDURES_HIGHLIGHT_DEF": "Къастайе процедурин билгало", + "PROCEDURES_CREATE_DO": "Кхолла %1 кхайкхам", + "PROCEDURES_IFRETURN_TOOLTIP": "Нагахь хьалхара маьӀна нийса делалахь, йухадерзадо шолгӀа маьӀна.", + "PROCEDURES_IFRETURN_WARNING": "ДӀахедар: ХӀокху блоко лелон таро йу функцин чоьхьара билгало.", + "WORKSPACE_COMMENT_DEFAULT_TEXT": "Йазйе кхузахь цхьа хӀума...", + "WORKSPACE_ARIA_LABEL": "Blockly белхан область", + "COLLAPSED_WARNINGS_WARNING": "ДӀакъевлина блокашкахь дӀахьедар ду", + "DIALOG_OK": "OK", + "DIALOG_CANCEL": "Йухайаккхар" +} diff --git a/msg/json/da.json b/msg/json/da.json index 2795a69c6..4c9febebc 100644 --- a/msg/json/da.json +++ b/msg/json/da.json @@ -19,8 +19,8 @@ "ADD_COMMENT": "Tilføj Kommentar", "REMOVE_COMMENT": "Fjern Kommentar", "DUPLICATE_COMMENT": "Duplikér Kommentar", - "EXTERNAL_INPUTS": "Udvendige inputs", - "INLINE_INPUTS": "Indlejrede inputs", + "EXTERNAL_INPUTS": "Eksterne inputs", + "INLINE_INPUTS": "Interne inputs", "DELETE_BLOCK": "Slet blok", "DELETE_X_BLOCKS": "Slet %1 blokke", "DELETE_ALL_BLOCKS": "Slet alle %1 blokke?", @@ -45,6 +45,7 @@ "NEW_VARIABLE_TITLE": "Navn til den nye variabel:", "VARIABLE_ALREADY_EXISTS": "En variabel med navnet »%1« findes allerede.", "VARIABLE_ALREADY_EXISTS_FOR_ANOTHER_TYPE": "En variabel med navnet »%1« findes allerede for en anden type: »%2«.", + "VARIABLE_ALREADY_EXISTS_FOR_A_PARAMETER": "En variabel med navnet '%1' findes allerede som en parameter i proceduren '%2'.", "DELETE_VARIABLE_CONFIRMATION": "Slet %1's brug af variablen »%2«?", "CANNOT_DELETE_VARIABLE_PROCEDURE": "Kan ikke slette variablen »%1« da den er en del af definitionen af funktionen »%2«", "DELETE_VARIABLE": "Slet variablen »%1«", @@ -188,6 +189,7 @@ "MATH_RANDOM_FLOAT_TITLE_RANDOM": "tilfældigt decimaltal (mellem 0 og 1)", "MATH_RANDOM_FLOAT_TOOLTIP": "Returner et tilfældigt decimaltal mellem 0,0 (inklusiv) og 1,0 (eksklusiv).", "MATH_ATAN2_TITLE": "atan2 af X:%1 Y:%2", + "MATH_ATAN2_TOOLTIP": "Returner arctangensen for punktet (X, Y) i grader fra -180 til 180.", "TEXT_TEXT_HELPURL": "https://da.wikipedia.org/wiki/Tekststreng", "TEXT_TEXT_TOOLTIP": "En bogstav, et ord eller en linje med tekst.", "TEXT_JOIN_TITLE_CREATEWITH": "lav en tekst med", diff --git a/msg/json/de.json b/msg/json/de.json index cace0b548..eca87b606 100644 --- a/msg/json/de.json +++ b/msg/json/de.json @@ -172,7 +172,7 @@ "MATH_ROUND_OPERATOR_ROUND": "runde", "MATH_ROUND_OPERATOR_ROUNDUP": "runde auf", "MATH_ROUND_OPERATOR_ROUNDDOWN": "runde ab", - "MATH_ONLIST_HELPURL": "http://www.sysplus.ch/einstieg.php?links=menu&seite=4125&grad=Crash&prog=Excel", + "MATH_ONLIST_HELPURL": "", "MATH_ONLIST_OPERATOR_SUM": "Summe über die Liste", "MATH_ONLIST_TOOLTIP_SUM": "Ist die Summe aller Zahlen in einer Liste.", "MATH_ONLIST_OPERATOR_MIN": "Minimalwert der Liste", @@ -265,7 +265,7 @@ "LISTS_CREATE_WITH_CONTAINER_TOOLTIP": "Hinzufügen, entfernen und sortieren von Elementen.", "LISTS_CREATE_WITH_ITEM_TOOLTIP": "Ein Element zur Liste hinzufügen.", "LISTS_REPEAT_TOOLTIP": "Erzeugt eine Liste mit einer variablen Anzahl von Elementen.", - "LISTS_REPEAT_TITLE": "erzeuge Liste mit %2-mal dem Element %1​", + "LISTS_REPEAT_TITLE": "erzeuge Liste mit %2-mal dem Element %1", "LISTS_LENGTH_TITLE": "Länge von %1", "LISTS_LENGTH_TOOLTIP": "Die Anzahl von Elementen in der Liste.", "LISTS_ISEMPTY_TITLE": "%1 ist leer", diff --git a/msg/json/diq.json b/msg/json/diq.json index 666b4cb44..bc37d442a 100644 --- a/msg/json/diq.json +++ b/msg/json/diq.json @@ -90,7 +90,7 @@ "LOGIC_TERNARY_CONDITION": "test", "LOGIC_TERNARY_IF_TRUE": "eke raşto", "LOGIC_TERNARY_IF_FALSE": "eke ğeleto", - "LOGIC_TERNARY_TOOLTIP": "Şerta'test'i test keno. Eger ke şert raşta se erca 'raşt'i çarneno, çepo se erca 'çep' çarneno.", + "LOGIC_TERNARY_TOOLTIP": "Şerta'test'i test keno. Eger ke şert raşta se erca 'raşt'i çarneno, çepo se erca 'çep' çarneno.", "MATH_NUMBER_HELPURL": "https://diq.wikipedia.org/wiki/Numre", "MATH_NUMBER_TOOLTIP": "Yew numre.", "MATH_TRIG_SIN": "sin", @@ -150,7 +150,7 @@ "MATH_RANDOM_FLOAT_TITLE_RANDOM": "Raştamaye nimande amor", "MATH_ATAN2_HELPURL": "https://diq.wikipedia.org/wiki/Atan2", "MATH_ATAN2_TITLE": "atan2, X:%1 Y:%2", - "TEXT_TEXT_TOOLTIP": "Yu herfa, satır yana çekuya metini", + "TEXT_TEXT_TOOLTIP": "Yu herfa, satır yana çekuya metini", "TEXT_JOIN_TITLE_CREATEWITH": "ya metin vıraz", "TEXT_CREATE_JOIN_TITLE_JOIN": "gıre de", "TEXT_CREATE_JOIN_ITEM_TOOLTIP": "Yew işaret nuşteyi ke.", @@ -181,7 +181,7 @@ "TEXT_PROMPT_TOOLTIP_NUMBER": "Seba yew numreya karber persiyê", "TEXT_PROMPT_TOOLTIP_TEXT": "Seba tay metinan karberi persiyê", "TEXT_COUNT_MESSAGE0": "%1 miyan de %2 bımare", - "TEXT_REPLACE_MESSAGE0": "%1 heruna ra zerrey %3 zerrey %2 ya bıvurne", + "TEXT_REPLACE_MESSAGE0": "%1 heruna ra zerrey %3 zerrey %2 ya bıvurne", "TEXT_REVERSE_MESSAGE0": "karakteranê %1 weçarne", "LISTS_CREATE_EMPTY_TITLE": "lista venge vıraze", "LISTS_CREATE_WITH_INPUT_WITH": "Liste ya vıraz", @@ -197,6 +197,7 @@ "LISTS_GET_INDEX_GET": "bıgê", "LISTS_GET_INDEX_GET_REMOVE": "Bıgi u wedarne", "LISTS_GET_INDEX_REMOVE": "wedare", + "LISTS_GET_INDEX_FROM_START": "#", "LISTS_GET_INDEX_FROM_END": "# peyniye ra", "LISTS_GET_INDEX_FIRST": "verên", "LISTS_GET_INDEX_LAST": "peyên", diff --git a/msg/json/dtp.json b/msg/json/dtp.json new file mode 100644 index 000000000..cd64e39fd --- /dev/null +++ b/msg/json/dtp.json @@ -0,0 +1,198 @@ +{ + "@metadata": { + "authors": [ + "CorrelMoris38", + "Jilorisa" + ] + }, + "VARIABLES_DEFAULT_NAME": "kakamot", + "UNNAMED_KEY": "au kingaran", + "TODAY": "Baino", + "DUPLICATE_BLOCK": "Pomoduo", + "ADD_COMMENT": "Panahak komi", + "REMOVE_COMMENT": "Pugaso komi", + "DUPLICATE_COMMENT": "Pomoduo kumin", + "EXTERNAL_INPUTS": "Input soliwan", + "INLINE_INPUTS": "Inpus sambaris", + "DELETE_BLOCK": "Iduo taantob", + "DELETE_X_BLOCKS": "Iduo %1 taantob", + "DELETE_ALL_BLOCKS": "Iduo toinsanan %1 taantob?", + "CLEAN_UP": "Lidango taantob", + "COLLAPSE_BLOCK": "Lopio taantob", + "COLLAPSE_ALL": "Lopio toinsanan taantob", + "EXPAND_BLOCK": "Ukabai taantob", + "EXPAND_ALL": "Ukabai toinsanan taantob", + "DISABLE_BLOCK": "Patayo taantob", + "ENABLE_BLOCK": "Posi'o taantob", + "HELP": "Uhupai", + "UNDO": "Potonduliono kawagu", + "REDO": "Wonsoyo kawagu", + "CHANGE_VALUE_TITLE": "Simbanai gatang:", + "RENAME_VARIABLE": "Simbanai ngaran pembolehubah...", + "RENAME_VARIABLE_TITLE": "Pomungaranai toinsanan%1 pembolehubah kumaa:", + "NEW_VARIABLE": "Pomonsoi pembolehubah", + "NEW_STRING_VARIABLE": "Pomonsoi tali pembolehubah...", + "NEW_NUMBER_VARIABLE": "Pomonsoi numbul pembolehubah...", + "NEW_COLOUR_VARIABLE": "Pomonsoi warana pembolehubah...", + "NEW_VARIABLE_TYPE_TITLE": "Kawo pembolehubah wagu:", + "NEW_VARIABLE_TITLE": "Ngaran pembolehubah wagu:", + "VARIABLE_ALREADY_EXISTS": "Pembolehubah pinungaranan %1 haro no.", + "VARIABLE_ALREADY_EXISTS_FOR_ANOTHER_TYPE": "Pembolehubah pinungaranan '%1' haro no ngaran montok suai kawo: '%2'.", + "VARIABLE_ALREADY_EXISTS_FOR_A_PARAMETER": "Pembolehubah pinungaranan do '%1' haro no sabaagi parameter id prosedur '%2'.", + "DELETE_VARIABLE_CONFIRMATION": "Pugaso %1 pomogunoon pembolehubah %2?", + "CANNOT_DELETE_VARIABLE_PROCEDURE": "Au milo momugas do pembolehubah '%1' tu' soboogian do definisi montok kogunoon '%2'", + "DELETE_VARIABLE": "Pugaso pembolehubah '%1'", + "COLOUR_PICKER_TOOLTIP": "Pili'o iso warana mantad palet.", + "COLOUR_RANDOM_TITLE": "wotik rawak", + "COLOUR_RANDOM_TOOLTIP": "Pili'o wotik mmiampai rawak.", + "COLOUR_RGB_TITLE": "warana miampai", + "COLOUR_RGB_RED": "aragang", + "COLOUR_RGB_GREEN": "otomou", + "COLOUR_RGB_BLUE": "obulou", + "COLOUR_RGB_TOOLTIP": "Pomonsoi wotik miampai ginumu spesifik do aragang, otomou om obulou. Oinsanan ginumu minog id pintangaan do 0 om 100.", + "COLOUR_BLEND_TITLE": "piroloto", + "COLOUR_BLEND_COLOUR1": "wotik 1", + "COLOUR_BLEND_COLOUR2": "wotik 2", + "COLOUR_BLEND_RATIO": "nisbah", + "COLOUR_BLEND_TOOLTIP": "Piroloto dua wotik misungku miampai nisbah di tinahak (0.0 - 1.0).", + "CONTROLS_REPEAT_TITLE": "wonsoyo kawagu %1", + "CONTROLS_REPEAT_INPUT_DO": "wonsoyo", + "CONTROLS_REPEAT_TOOLTIP": "Wonsoyo kawagu tisunud miampai piipiro.", + "CONTROLS_WHILEUNTIL_OPERATOR_WHILE": "Huliton kawagu soira", + "CONTROLS_WHILEUNTIL_OPERATOR_UNTIL": "Huliton gisom", + "CONTROLS_WHILEUNTIL_TOOLTIP_WHILE": "Soira otopot o gatang dii, wonsoyo piipiro tisunud.", + "CONTROLS_WHILEUNTIL_TOOLTIP_UNTIL": "Sokiro au koontok o gatang, wonsoyo o tisunud.", + "CONTROLS_FOR_TOOLTIP": "Guno'o pombolehubah '%1' id gatang mantad piipiro numbul id kotimpuunon gisom kolimpupuson, intobon tumanud selang di pinatantu, om wonsoyo tantob-tantob pointantu.", + "CONTROLS_FOR_TITLE": "intobo miampai %1 mantad %2 gisom %3 selang %4", + "CONTROLS_FOREACH_TITLE": "montok monikid item %1 id sanarai %2", + "CONTROLS_FOREACH_TOOLTIP": "Montok monikid item id sanarai, patatapo pombolehubah '%1' id item, om wonsoyo piipiro tisunud.", + "CONTROLS_FLOW_STATEMENTS_OPERATOR_BREAK": "tingkodo gelung", + "CONTROLS_FLOW_STATEMENTS_OPERATOR_CONTINUE": "timpuun mimpai lelaran gelung pointilombus", + "CONTROLS_FLOW_STATEMENTS_TOOLTIP_BREAK": "Soliwan mantad di kisuang do gelung.", + "CONTROLS_FLOW_STATEMENTS_TOOLTIP_CONTINUE": "Tolibai toinsanan gelung, om timpuun miampai lelaran potilombus.", + "CONTROLS_FLOW_STATEMENTS_WARNING": "Pononsunudan : Tantob diti milo guno'on miampai gelung.", + "CONTROLS_IF_TOOLTIP_1": "Sokiro otopot o gatang, pomonsoi piipiro tisunud.", + "CONTROLS_IF_TOOLTIP_2": "Sokiro otopot gatang, pomonsoi tantab kumoiso montok tisunud. Au nopo, wonsoyo tantob kumoduo montok tisunud.", + "CONTROLS_IF_TOOLTIP_3": "Sokiro gatang koiso nopo nga' otopot, wonsoyo o tantob koiso tisunud dii. Au nopo, sokiro gatang koduo nopo nga' otopot, wonsoyo tantob kumoduo.", + "CONTROLS_IF_TOOLTIP_4": "Sokiro gatang kumoiso otopot, wonsoyo tisunud montok tantob kumoiso. Au nopo, sokiro gatang kumoduo otopot, wonsoyo tisunud montok tantob kumoduo. Sokiro aiso gatang di otopot, wonsoyo tantob di kotohuri montok tisunud.", + "CONTROLS_IF_MSG_IF": "sokiro", + "CONTROLS_IF_MSG_ELSEIF": "suai sokiro", + "CONTROLS_IF_MSG_ELSE": "suai", + "CONTROLS_IF_IF_TOOLTIP": "Ruhangai, iduo, toi ko' uludo kawagu boogian montok mongulud kawagu tantob sokiro.", + "CONTROLS_IF_ELSEIF_TOOLTIP": "Ruhangai iso syarat kumaa tantob sokiro.", + "CONTROLS_IF_ELSE_TOOLTIP": "Poruhango ii kotohuri, poundoliho toinsanan kowoowoyoon kumaa id tantob sokiro.", + "LOGIC_COMPARE_TOOLTIP_EQ": "Tumonduli otopot sokiro koduo-duo input otopot miampai tiso om tiso.", + "LOGIC_COMPARE_TOOLTIP_NEQ": "Tumonduli otopot sokiro koduo-duo input au miagal miampai tiso om tiso.", + "LOGIC_COMPARE_TOOLTIP_LT": "Tumonduli otopot sokiro input koiso lobi okoro mantad do input kumoduo.", + "LOGIC_COMPARE_TOOLTIP_LTE": "Tumonduli otopot sokiro input koiso lobi okoro toi ko' miagal do input kumoduo.", + "LOGIC_COMPARE_TOOLTIP_GT": "Tumonduli otopot sokiro input koiso lobi osonong mantad ko' input kumoduo.", + "LOGIC_COMPARE_TOOLTIP_GTE": "Tumonduli otopot sokiro input koiso lobi osonong toi ko' miagal do input kumoduo.", + "LOGIC_OPERATION_TOOLTIP_AND": "Tumonduli otopot sokiro koduo-duo input nga' otopot.", + "LOGIC_OPERATION_AND": "om", + "LOGIC_OPERATION_TOOLTIP_OR": "Tumonduli otopot sokiro iso no pia input di otopot.", + "LOGIC_OPERATION_OR": "toi ko'", + "LOGIC_NEGATE_TITLE": "okon ko' %1", + "LOGIC_NEGATE_TOOLTIP": "Tumonduli otopot sokiro input au otopot. Tumonduli kasala sokiro otopot input.", + "LOGIC_BOOLEAN_TRUE": "otopot", + "LOGIC_BOOLEAN_FALSE": "kasala", + "LOGIC_BOOLEAN_TOOLTIP": "Tumonduli nung otopot toi ko' kasala.", + "LOGIC_NULL": "null", + "LOGIC_NULL_TOOLTIP": "Tumonduli null.", + "LOGIC_TERNARY_CONDITION": "umbalan", + "LOGIC_TERNARY_IF_TRUE": "sokiro otopot", + "LOGIC_TERNARY_IF_FALSE": "sokiro kasala", + "LOGIC_TERNARY_TOOLTIP": "Intangai kowoowoyo id 'test'. Sokiro otopot kowoowoyoon, tumonduli id gatang 'if true'; au nopo nga' tumonduli id gatang 'if false'.", + "MATH_NUMBER_TOOLTIP": "Numbul", + "MATH_TRIG_SIN": "sin", + "MATH_TRIG_COS": "kos", + "MATH_TRIG_TAN": "tan", + "MATH_TRIG_ASIN": "asin", + "MATH_TRIG_ACOS": "akos", + "MATH_TRIG_ATAN": "atan", + "MATH_ARITHMETIC_TOOLTIP_ADD": "Potondulionon ginumu montok duo numbul.", + "MATH_ARITHMETIC_TOOLTIP_MINUS": "Potondulionon o pisuayan do duo numbul.", + "MATH_ARITHMETIC_TOOLTIP_MULTIPLY": "Potondulionon produk montok duo numbul.", + "MATH_ARITHMETIC_TOOLTIP_DIVIDE": "Potondulionon asil bahagi montok duo numbul.", + "MATH_ARITHMETIC_TOOLTIP_POWER": "Potonduliono numbul kumoiso di pinoingkawas kumaa kuasa do numbul kumoduo.", + "MATH_SINGLE_OP_ROOT": "punca kuasa duo", + "MATH_SINGLE_TOOLTIP_ROOT": "Potonduliono punca kuasa duo numbul.", + "MATH_SINGLE_OP_ABSOLUTE": "mutlak", + "MATH_SINGLE_TOOLTIP_ABS": "Potonduliono gatang mutlak montok isoiso numbul.", + "MATH_SINGLE_TOOLTIP_NEG": "Potonduliono numbul di songsang.", + "MATH_SINGLE_TOOLTIP_LN": "Potonduliono o logaritma asli numbul.", + "MATH_SINGLE_TOOLTIP_LOG10": "Potonduliono impohon logaritma 10 numbul.", + "MATH_SINGLE_TOOLTIP_EXP": "Potonduliono e kumaa kuasa numbul.", + "MATH_SINGLE_TOOLTIP_POW10": "Potonduliono 10 kumaa kuasa numbul.", + "MATH_TRIG_TOOLTIP_SIN": "Potonduliono darjah sine (okon radian).", + "MATH_TRIG_TOOLTIP_COS": "Potonduliono cosine do darjah (okon radian).", + "MATH_TRIG_TOOLTIP_TAN": "Potonduliono tangen do darjah (okon ko' radian).", + "MATH_TRIG_TOOLTIP_ASIN": "Potonduliono arcsine mantad numbul.", + "MATH_TRIG_TOOLTIP_ACOS": "Potonduliono arccosine mantad do numbul.", + "MATH_TRIG_TOOLTIP_ATAN": "Potonduliono arctangen mantad numbul.", + "MATH_CONSTANT_TOOLTIP": "Potonduliono iso mantad do pemalar koubasanan: π (3.141…), e (2.718…), φ (1.618…), sqrt(2) (1.414…), sqrt(½) (0.707…), or ∞ (infinity).", + "MATH_IS_EVEN": "poinggonop no", + "MATH_IS_ODD": "suusuai", + "MATH_IS_PRIME": "pordana", + "MATH_IS_WHOLE": "koinsanai", + "MATH_IS_POSITIVE": "positif", + "MATH_IS_NEGATIVE": "negatif", + "MATH_IS_DIVISIBLE_BY": "milo piboogion miampai", + "MATH_IS_TOOLTIP": "Intangai nung numbul di poinggonop, suusuai, pordana, koinsanai, positif, negatif, toi ko' milo piboogion do numbul. Potonduliono otopot toi ko' kasala.", + "MATH_CHANGE_TITLE": "kounolihon %1 miampai %2", + "MATH_CHANGE_TOOLTIP": "Poruhango numbul kumaa pombolehubah '%1'.", + "MATH_ROUND_TOOLTIP": "Pobulato numbul minsawat toi ko' minsiriba.", + "MATH_ROUND_OPERATOR_ROUND": "pobulugu", + "MATH_ROUND_OPERATOR_ROUNDUP": "buluguo id sawat", + "MATH_ROUND_OPERATOR_ROUNDDOWN": "buluguo id siriba", + "MATH_ONLIST_OPERATOR_SUM": "Ginumu sanarai", + "MATH_ONLIST_TOOLTIP_SUM": "Potonduliono ginumu toinsanan numbul id sanarai.", + "MATH_ONLIST_OPERATOR_MIN": "min id suang sanarai", + "MATH_ONLIST_TOOLTIP_MIN": "Pogulio numbul bobos tokoro id sanarai.", + "MATH_ONLIST_OPERATOR_MAX": "Maksimum id suang sanarai", + "MATH_ONLIST_TOOLTIP_MAX": "Potonduliono numbul bobos tagayo id sanarai.", + "MATH_ONLIST_OPERATOR_AVERAGE": "purata mantad sanarai", + "MATH_ONLIST_TOOLTIP_AVERAGE": "Potonduliono purata (min aritmetik) mantad gatang numerik id sanarai.", + "MATH_ONLIST_OPERATOR_MEDIAN": "median montok sanarai", + "MATH_ONLIST_TOOLTIP_MEDIAN": "Potonduliono numbul median id sanarai.", + "MATH_ONLIST_OPERATOR_MODE": "mod mantad sanarai", + "MATH_ONLIST_TOOLTIP_MODE": "Potonduliono sanarai item di bobos koubasan id sanarai.", + "MATH_ONLIST_OPERATOR_STD_DEV": "sisihan piawai montok sanarai", + "MATH_ONLIST_TOOLTIP_STD_DEV": "Potondulio sisihan piawai mantad sanarai.", + "MATH_ONLIST_OPERATOR_RANDOM": "Item rawak id sanarai", + "MATH_ONLIST_TOOLTIP_RANDOM": "Potondulio item rawak mantad do sanarai.", + "MATH_MODULO_TITLE": "noolu montok %1 ÷ %2", + "MATH_MODULO_TOOLTIP": "Potonduliono noolu mantad pomboogian duo numbul.", + "MATH_CONSTRAIN_TITLE": "Kotogangan %1 osiriba %2 akawas %3", + "MATH_CONSTRAIN_TOOLTIP": "Kotogangan numbul id pialatan do limit spesifik (inklusif).", + "MATH_RANDOM_INT_TITLE": "integer rawak mantad %1 kumaa %2", + "MATH_RANDOM_INT_TOOLTIP": "Potonduliono integer rawak id pialatan do duo limit spesifik, inklusif.", + "MATH_RANDOM_FLOAT_TITLE_RANDOM": "pamabakan rawak", + "MATH_RANDOM_FLOAT_TOOLTIP": "Potondulionon pamabakan rawak id pialatan 0.0 (inklusif) om 1.0 (esklusif).", + "MATH_ATAN2_TITLE": "atan2 do X:%1 Y:%2", + "MATH_ATAN2_TOOLTIP": "Potonduliono titik artangen (X,Y) id darjah mantad -180 gisom 180.", + "TEXT_TEXT_TOOLTIP": "Pimato, boros toi ko' baris teks.", + "TEXT_JOIN_TITLE_CREATEWITH": "Pomonsoi teks momoguno", + "TEXT_JOIN_TOOLTIP": "Pomonsoi soboogian teks miampai popiungkait nunu nopo numbul id items.", + "TEXT_CREATE_JOIN_TITLE_JOIN": "tanud", + "TEXT_CREATE_JOIN_TOOLTIP": "Ruhangai, idui, toi ko' rikudo seksyen montok mongulud kawagu tantob teks diti,", + "TEXT_CREATE_JOIN_ITEM_TOOLTIP": "Ruhangai item kumaa teks.", + "TEXT_APPEND_TITLE": "kumaa %1 ruhangai teks %2", + "TEXT_APPEND_TOOLTIP": "Ruhangai soboogian teks kumaa pembolehubah '%1'.", + "TEXT_LENGTH_TITLE": "Ninaru %1", + "TEXT_LENGTH_TOOLTIP": "Pogulio ginumu pimato (kohompit no liwang) id suang teks di pinotounda.", + "TEXT_ISEMPTY_TITLE": "%1 nopo nga' kusung", + "TEXT_ISEMPTY_TOOLTIP": "Potonduliono otopot sokiro teks di pinotounda nopo nga' kusung.", + "TEXT_INDEXOF_TOOLTIP": "Potonduliono Indeks kinaantakan koiso/kotohuri mantad teks koiso kumaa teks koduo. Potonduliono %1 sokiro au koruba teks.", + "TEXT_INDEXOF_TITLE": "id suang teks %1 %2 %3", + "TEXT_INDEXOF_OPERATOR_FIRST": "mogihum kinaantakan koiso teks", + "TEXT_INDEXOF_OPERATOR_LAST": "mogihum kinaantakan kotohuri teks", + "TEXT_CHARAT_TITLE": "is suang teks %1 %2", + "TEXT_CHARAT_FROM_START": "maganu pimato #", + "TEXT_CHARAT_FROM_END": "mogihum pimato # mantad kotohuri", + "TEXT_CHARAT_FIRST": "mogihum pimato koiso", + "TEXT_CHARAT_LAST": "mogihum pimato kotohuri", + "TEXT_CHARAT_RANDOM": "mogihum pimato rawak", + "TEXT_CHARAT_TOOLTIP": "Potondulionon pimato kumaa kinoyonon spesifik.", + "TEXT_GET_SUBSTRING_TOOLTIP": "Potonduliono ginumu spesifik do teks.", + "TEXT_GET_SUBSTRING_INPUT_IN_TEXT": "id suang teks" +} diff --git a/msg/json/dty.json b/msg/json/dty.json index 735647750..27a95cc66 100644 --- a/msg/json/dty.json +++ b/msg/json/dty.json @@ -15,7 +15,7 @@ "EXTERNAL_INPUTS": "भाइरका इन्पुटहरू", "INLINE_INPUTS": "इनलाइन इन्पुटहरू", "DELETE_BLOCK": "ब्लक हटाउन्या", - "DELETE_X_BLOCKS": " %1 ब्लकहरू हटाउन्या", + "DELETE_X_BLOCKS": "%1 ब्लकहरू हटाउन्या", "DELETE_ALL_BLOCKS": "सबै %1 ब्लकनलाई हटाउन्या ?", "CLEAN_UP": "ब्लकनलाई हटाओ", "COLLAPSE_BLOCK": "ब्लक भत्का", diff --git a/msg/json/ee.json b/msg/json/ee.json index 7d6b20aec..4e2a3e940 100644 --- a/msg/json/ee.json +++ b/msg/json/ee.json @@ -120,11 +120,11 @@ "MATH_SINGLE_TOOLTIP_LN": "Xexlẽdzesia nedzi ɖe edzi eɖokui zigbzi e.", "MATH_SINGLE_TOOLTIP_LOG10": "Nebu zigbɔzi neni 10-teƒe-10 awɔ xexlẽdzesia.", "MATH_SINGLE_TOOLTIP_EXP": "Nebu e-teƒe-e zigbɔzi xexlẽdzesia.", - "MATH_SINGLE_TOOLTIP_POW10": " Nebu ewo-teƒe-ewo zigbɔzi xexlẽdzesia.", + "MATH_SINGLE_TOOLTIP_POW10": "Nebu ewo-teƒe-ewo zigbɔzi xexlẽdzesia.", "MATH_TRIG_TOOLTIP_SIN": "Nebu dzogɔe le digri me (menye radiã o).", "MATH_IS_EVEN": "enye eve ƒomevi", "MATH_IS_ODD": "enye etɔ̃ ƒomevi", - "MATH_IS_PRIME": " enye xexlẽme blibo", + "MATH_IS_PRIME": "enye xexlẽme blibo", "MATH_IS_WHOLE": "enye blibo", "MATH_IS_POSITIVE": "enye xexlẽme ŋgɔgbeyitɔ", "MATH_IS_NEGATIVE": "enye xexlẽme megbeyitɔ", diff --git a/msg/json/el.json b/msg/json/el.json index 5e6ec8ef2..6d6638abf 100644 --- a/msg/json/el.json +++ b/msg/json/el.json @@ -11,6 +11,7 @@ "Giannaras99", "Glavkos", "KATRINE1992", + "McDutchie", "Namatreasure", "NikosLikomitros", "Nikosgranturismogt", diff --git a/msg/json/en.json b/msg/json/en.json index 6e6294cce..d9bddec31 100644 --- a/msg/json/en.json +++ b/msg/json/en.json @@ -1,7 +1,7 @@ { "@metadata": { "author": "Ellen Spertus ", - "lastupdated": "2021-07-01 14:44:40.033432", + "lastupdated": "2023-12-08 18:42:04.679586", "locale": "en", "messagedocumentation" : "qqq" }, @@ -38,6 +38,7 @@ "NEW_VARIABLE_TITLE": "New variable name:", "VARIABLE_ALREADY_EXISTS": "A variable named '%1' already exists.", "VARIABLE_ALREADY_EXISTS_FOR_ANOTHER_TYPE": "A variable named '%1' already exists for another type: '%2'.", + "VARIABLE_ALREADY_EXISTS_FOR_A_PARAMETER": "A variable named '%1' already exists as a parameter in the procedure '%2'.", "DELETE_VARIABLE_CONFIRMATION": "Delete %1 uses of the '%2' variable?", "CANNOT_DELETE_VARIABLE_PROCEDURE": "Can't delete the variable '%1' because it's part of the definition of the function '%2'", "DELETE_VARIABLE": "Delete the '%1' variable", diff --git a/msg/json/fa.json b/msg/json/fa.json index 101026f3e..6e8fac8cb 100644 --- a/msg/json/fa.json +++ b/msg/json/fa.json @@ -75,7 +75,7 @@ "CONTROLS_WHILEUNTIL_OPERATOR_UNTIL": "تکرار تا زمانی که", "CONTROLS_WHILEUNTIL_TOOLTIP_WHILE": "تا زمانی که یک مقدار صحیح است، چند عبارت را انجام بده.", "CONTROLS_WHILEUNTIL_TOOLTIP_UNTIL": "تا زمانی که یک مقدار ناصحیح است، چند عبارت را انجام بده.", - "CONTROLS_FOR_TOOLTIP": "متغیر %1 را در مقادیر شروع‌شده از عدد انتهای به عدد انتهایی را دارد، با فواصل مشخص‌شده می‌شمارد و این بلوک مشخص‌شده را انجام می‌دهد.", + "CONTROLS_FOR_TOOLTIP": "متغیر %1 را در مقادیر شروع‌شده از عدد انتهای به عدد انتهایی را دارد، با فواصل مشخص‌شده می‌شمارد و این بلوک مشخص‌شده را انجام می‌دهد.", "CONTROLS_FOR_TITLE": "با تعداد %1 از %2 به %3 با گام‌های %4", "CONTROLS_FOREACH_TITLE": "برای هر مورد %1 در فهرست %2", "CONTROLS_FOREACH_TOOLTIP": "برای هر مورد در این فهرست، تنظیم متغیر «%1» به مورد و انجام تعدادی عبارت.", @@ -223,9 +223,9 @@ "TEXT_CHANGECASE_OPERATOR_LOWERCASE": "به حروف کوچک", "TEXT_CHANGECASE_OPERATOR_TITLECASE": "به حروف بزرگ عنوان", "TEXT_TRIM_TOOLTIP": "کپی از متن با فاصله‌های حذف‌شده از یک یا هر دو پایان باز می‌گرداند.", - "TEXT_TRIM_OPERATOR_BOTH": "تراشیدن فاصله‌ها از هر دو طرف", - "TEXT_TRIM_OPERATOR_LEFT": "تراشیدن فاصله‌ها از طرف چپ", - "TEXT_TRIM_OPERATOR_RIGHT": "تراشیدن فاصله‌ها از طرف چپ", + "TEXT_TRIM_OPERATOR_BOTH": "تراشیدن فاصله‌ها از هر دو طرف", + "TEXT_TRIM_OPERATOR_LEFT": "تراشیدن فاصله‌ها از طرف چپ", + "TEXT_TRIM_OPERATOR_RIGHT": "تراشیدن فاصله‌ها از طرف چپ", "TEXT_PRINT_TITLE": "چاپ %1", "TEXT_PRINT_TOOLTIP": "چاپ متن، عدد یا هر مقدار دیگر مشخص‌شده.", "TEXT_PROMPT_TYPE_TEXT": "اعلان برای متن با پیام", diff --git a/msg/json/fr.json b/msg/json/fr.json index 7ca301291..1f41860d3 100644 --- a/msg/json/fr.json +++ b/msg/json/fr.json @@ -365,7 +365,7 @@ "PROCEDURES_IFRETURN_TOOLTIP": "Si une valeur est vraie, alors renvoyer une seconde valeur.", "PROCEDURES_IFRETURN_WARNING": "Attention : ce bloc ne peut être utilisé que dans une définition de fonction.", "WORKSPACE_COMMENT_DEFAULT_TEXT": "Expliquez quelque chose...", - "WORKSPACE_ARIA_LABEL": "Espace de travail de Blocky", + "WORKSPACE_ARIA_LABEL": "Espace de travail de Blockly", "COLLAPSED_WARNINGS_WARNING": "Les blocs repliés contiennent des avertissements.", "DIALOG_OK": "OK", "DIALOG_CANCEL": "Annuler" diff --git a/msg/json/gl.json b/msg/json/gl.json index 8b902e293..e2d5805de 100644 --- a/msg/json/gl.json +++ b/msg/json/gl.json @@ -131,7 +131,7 @@ "MATH_SINGLE_TOOLTIP_LOG10": "Devolve o logaritmo en base 10 dun número.", "MATH_SINGLE_TOOLTIP_EXP": "Devolve o número e elevado á potencia dun número.", "MATH_SINGLE_TOOLTIP_POW10": "Devolve 10 elevado á potencia dun número.", - "MATH_TRIG_HELPURL": "https://gl.m.wikipedia.org/wiki/Función_trigonométrica", + "MATH_TRIG_HELPURL": "https://gl.wikipedia.org/wiki/Función_trigonométrica", "MATH_TRIG_TOOLTIP_SIN": "Devolve o seno dun grao (non radián).", "MATH_TRIG_TOOLTIP_COS": "Devolve o coseno dun grao (non radián).", "MATH_TRIG_TOOLTIP_TAN": "Devolve a tanxente dun grao (non radián).", diff --git a/msg/json/gn.json b/msg/json/gn.json index 625f0b1f7..0ef0e94c2 100644 --- a/msg/json/gn.json +++ b/msg/json/gn.json @@ -30,7 +30,7 @@ "COLOUR_RGB_RED": "pytã", "COLOUR_RGB_GREEN": "hovyũ", "COLOUR_RGB_BLUE": "hovy", - "COLOUR_RGB_TOOLTIP": "Ejapo hag̃ua peteĩ sa'y eñembopara pytã, hovyũ ha hovy. Opa papaha oĩ va'erã 0 ha 100 imbytépe.", + "COLOUR_RGB_TOOLTIP": "Ejapo hag̃ua peteĩ sa'y eñembopara pytã, hovyũ ha hovy. Opa papaha oĩ va'erã 0 ha 100 imbytépe.", "COLOUR_BLEND_TITLE": "mbopara", "COLOUR_BLEND_COLOUR1": "sa'y 1", "COLOUR_BLEND_COLOUR2": "sa'y 2", diff --git a/msg/json/he.json b/msg/json/he.json index 9dcbe3cf1..c5db9108e 100644 --- a/msg/json/he.json +++ b/msg/json/he.json @@ -56,7 +56,7 @@ "DELETE_VARIABLE_CONFIRMATION": "למחוק %1 שימושים במשתנה ‚%2’?", "CANNOT_DELETE_VARIABLE_PROCEDURE": "אי אפשר למחוק את המשתנה \"%1\", מכיוון שהגדרת הפונקציה \"%2\" משתמשת בו.", "DELETE_VARIABLE": "מחק את משתנה ה'%1'", - "COLOUR_PICKER_HELPURL": "http://he.wikipedia.org/wiki/%D7%A6%D7%91%D7%A2", + "COLOUR_PICKER_HELPURL": "https://he.wikipedia.org/wiki/צבע", "COLOUR_PICKER_TOOLTIP": "בחר צבע מן הצבעים.", "COLOUR_RANDOM_TITLE": "צבע אקראי", "COLOUR_RANDOM_TOOLTIP": "בחר צבא אקראי.", @@ -70,7 +70,7 @@ "COLOUR_BLEND_COLOUR2": "צבע 2", "COLOUR_BLEND_RATIO": "יחס", "COLOUR_BLEND_TOOLTIP": "מערבב שני צבעים יחד עם יחס נתון(0.0 - 1.0).", - "CONTROLS_REPEAT_HELPURL": "http://he.wikipedia.org/wiki/בקרת_זרימה", + "CONTROLS_REPEAT_HELPURL": "https://he.wikipedia.org/wiki/בקרת_זרימה", "CONTROLS_REPEAT_TITLE": "חזור על הפעולה %1 פעמים", "CONTROLS_REPEAT_INPUT_DO": "תעשה", "CONTROLS_REPEAT_TOOLTIP": "לעשות כמה פעולות מספר פעמים.", diff --git a/msg/json/hr.json b/msg/json/hr.json index a82644d74..500f8395a 100644 --- a/msg/json/hr.json +++ b/msg/json/hr.json @@ -180,7 +180,7 @@ "TEXT_CREATE_JOIN_TOOLTIP": "Dodaj, ukloni ili promijeni redoslijed kako biste presložili ovaj tekstualni blok", "TEXT_CREATE_JOIN_ITEM_TOOLTIP": "Dodajte stavku u tekst", "TEXT_APPEND_TITLE": "varijabli %1 dodajte tekst %2", - "TEXT_APPEND_TOOLTIP": "Dodajte neki tekst varijabli '%1'.", + "TEXT_APPEND_TOOLTIP": "Dodajte neki tekst varijabli '%1'.", "TEXT_LENGTH_TITLE": "duljina %1", "TEXT_LENGTH_TOOLTIP": "Vraća broj slova (uključivši razmake) teksta", "TEXT_ISEMPTY_TITLE": "%1 je prazno", diff --git a/msg/json/hsb.json b/msg/json/hsb.json new file mode 100644 index 000000000..8f81571d1 --- /dev/null +++ b/msg/json/hsb.json @@ -0,0 +1,128 @@ +{ + "@metadata": { + "authors": [ + "J budissin", + "Michawiki" + ] + }, + "VARIABLES_DEFAULT_NAME": "element", + "UNNAMED_KEY": "bjez mjena", + "TODAY": "Dźensa", + "DUPLICATE_BLOCK": "Kopěrować", + "ADD_COMMENT": "Přidać komentar", + "REMOVE_COMMENT": "Komentar wotstronić", + "DUPLICATE_COMMENT": "Komentar podwojić", + "EXTERNAL_INPUTS": "Eksterne zapodaća", + "INLINE_INPUTS": "Interne zapodaća", + "DELETE_BLOCK": "Blok zhašeć", + "DELETE_X_BLOCKS": "Bloki, kotrež so maja zhašeć: %1", + "DELETE_ALL_BLOCKS": "Wšě bloki zhašeć? %1", + "CLEAN_UP": "Bloki zrumować", + "COLLAPSE_BLOCK": "Blok sfałdować", + "COLLAPSE_ALL": "Bloki sfałdować", + "EXPAND_BLOCK": "Blok rozfałdować", + "EXPAND_ALL": "Bloki rozfałdować", + "DISABLE_BLOCK": "Blok znjemóžnić", + "ENABLE_BLOCK": "Blok zmóžnić", + "HELP": "Pomhać", + "UNDO": "Cofnyć", + "REDO": "Wospjetować", + "CHANGE_VALUE_TITLE": "Hódnotu změnić", + "RENAME_VARIABLE": "Přemjenować wariablu…", + "RENAME_VARIABLE_TITLE": "Wšě wariable „%1“ přemjenować do:", + "NEW_VARIABLE": "Wariablu wutworić…", + "NEW_STRING_VARIABLE": "Wariablu typa znamješkoweho rjećazka wutworić…", + "NEW_NUMBER_VARIABLE": "Ličbowu wariablu wutworić…", + "NEW_COLOUR_VARIABLE": "Barbowu wariablu wutworić…", + "NEW_VARIABLE_TYPE_TITLE": "Nowy wariablowy typ:", + "NEW_VARIABLE_TITLE": "Mjeno noweje wariable:", + "VARIABLE_ALREADY_EXISTS": "Wariabla z mjenom „%1“ hižo eksistuje.", + "VARIABLE_ALREADY_EXISTS_FOR_ANOTHER_TYPE": "Wariabla z mjenom „%1“ hižo za druhi typ eksistuje: „%2“.", + "DELETE_VARIABLE_CONFIRMATION": "Slědowacu ličbu wužiwanja wariable „%2“ zhašec? %1", + "CANNOT_DELETE_VARIABLE_PROCEDURE": "Wariabla „%1“ njehodźi so zhašeć, dokelž je dźěl definicije funkcije „%2“", + "DELETE_VARIABLE": "Wariablu „%1“ zhašeć", + "COLOUR_PICKER_TOOLTIP": "Wubjer barbu z palety.", + "COLOUR_RANDOM_TITLE": "připadna barba", + "COLOUR_RANDOM_TOOLTIP": "Wubjer připadnu barbu.", + "COLOUR_RGB_TITLE": "barba z", + "COLOUR_RGB_RED": "čerwjene", + "COLOUR_RGB_GREEN": "zelene", + "COLOUR_RGB_BLUE": "módre", + "COLOUR_RGB_TOOLTIP": "Wutwor barbu z podatymi hódnotami za čerwjeny, zeleny a módry. Wšě hódnoty dyrbja mjez 0 a 100 być.", + "COLOUR_BLEND_TITLE": "měšeć", + "COLOUR_BLEND_COLOUR1": "barba 1", + "COLOUR_BLEND_COLOUR2": "barba 2", + "COLOUR_BLEND_RATIO": "poměr", + "COLOUR_BLEND_TOOLTIP": "Měša dwě barbje z podatym poměrom (0.0 – 1.0).", + "CONTROLS_REPEAT_TITLE": "ličba wospjetowanjow: %1", + "CONTROLS_REPEAT_INPUT_DO": "čiń", + "CONTROLS_REPEAT_TOOLTIP": "Přikazy wjacekróć wuwjesć.", + "CONTROLS_WHILEUNTIL_OPERATOR_WHILE": "wospjetuj mjeztym zo", + "CONTROLS_WHILEUNTIL_OPERATOR_UNTIL": "wospjetuj doniž", + "CONTROLS_WHILEUNTIL_TOOLTIP_WHILE": "Wuwjedź přikazy, dołhož hódnota je wěrna.", + "CONTROLS_WHILEUNTIL_TOOLTIP_UNTIL": "Wuwjedź přikazy, dołhož hódnota wěrna njeje.", + "CONTROLS_IF_MSG_IF": "jeli", + "CONTROLS_IF_MSG_ELSEIF": "hewak jeli", + "CONTROLS_IF_MSG_ELSE": "hewak", + "LOGIC_OPERATION_AND": "a", + "LOGIC_OPERATION_OR": "abo", + "LOGIC_NEGATE_TITLE": "nic %1", + "LOGIC_BOOLEAN_TRUE": "wěrno", + "LOGIC_BOOLEAN_FALSE": "wopak", + "LOGIC_BOOLEAN_TOOLTIP": "Wróći pak wěrno pak wopak.", + "LOGIC_NULL": "nul", + "LOGIC_NULL_TOOLTIP": "Wróći nul.", + "LOGIC_TERNARY_CONDITION": "test", + "LOGIC_TERNARY_IF_TRUE": "jeli wěrno", + "LOGIC_TERNARY_IF_FALSE": "jeli wopak", + "MATH_NUMBER_TOOLTIP": "Ličba.", + "MATH_TRIG_SIN": "sin", + "MATH_TRIG_COS": "cos", + "MATH_TRIG_TAN": "tan", + "MATH_TRIG_ASIN": "asin", + "MATH_TRIG_ACOS": "acos", + "MATH_TRIG_ATAN": "atan", + "MATH_ARITHMETIC_TOOLTIP_ADD": "Wróći sumu dweju ličbow.", + "MATH_ARITHMETIC_TOOLTIP_MINUS": "Wróći diferencu dewju ličbow.", + "MATH_ARITHMETIC_TOOLTIP_MULTIPLY": "Wróći produkt dweju ličbow.", + "MATH_ARITHMETIC_TOOLTIP_DIVIDE": "Wróći kwocient dweju ličbow", + "MATH_SINGLE_OP_ROOT": "kwadratny korjeń", + "MATH_SINGLE_TOOLTIP_ROOT": "Wróći kwadratny korjeń ličby", + "MATH_SINGLE_OP_ABSOLUTE": "absolutna hódnota", + "MATH_SINGLE_TOOLTIP_ABS": "Wróći absolutnu hódnotu ličby.", + "MATH_SINGLE_TOOLTIP_LN": "Wróći přirodny logaritmus ličby.", + "MATH_IS_EVEN": "je runy", + "MATH_IS_ODD": "je njeruny", + "MATH_IS_PRIME": "je primowa ličba", + "MATH_IS_WHOLE": "je cyła ličba", + "MATH_IS_POSITIVE": "je pozitiwny", + "MATH_IS_NEGATIVE": "je negatiwny", + "MATH_RANDOM_FLOAT_TITLE_RANDOM": "připadny łamk", + "TEXT_ISEMPTY_TITLE": "%1 je prózdny", + "TEXT_GET_SUBSTRING_INPUT_IN_TEXT": "w teksće", + "TEXT_PRINT_TITLE": "%1 wudać", + "LISTS_CREATE_WITH_CONTAINER_TITLE_ADD": "lisćina", + "LISTS_CREATE_WITH_ITEM_TOOLTIP": "Lisćinje zapisk přidać.", + "LISTS_LENGTH_TITLE": "dołhosć lisćiny %1", + "LISTS_ISEMPTY_TITLE": "%1 je prózdny", + "LISTS_INLIST": "w lisćinje", + "LISTS_GET_INDEX_REMOVE": "wotstronić", + "LISTS_GET_INDEX_FROM_START": ".", + "LISTS_GET_INDEX_FROM_END": "wotzady", + "LISTS_GET_INDEX_FIRST": "prěni", + "LISTS_GET_INDEX_LAST": "posledni", + "LISTS_GET_INDEX_RANDOM": "připadny", + "LISTS_INDEX_FROM_START_TOOLTIP": "%1 je prěni zapisk.", + "LISTS_INDEX_FROM_END_TOOLTIP": "%1 je posledni zapisk.", + "LISTS_SET_INDEX_INPUT_TO": "jako", + "LISTS_SORT_TYPE_NUMERIC": "numerisce", + "LISTS_SORT_TYPE_TEXT": "alfabetisce", + "PROCEDURES_BEFORE_PARAMS": "z:", + "PROCEDURES_CALL_BEFORE_PARAMS": "z:", + "PROCEDURES_DEF_DUPLICATE_WARNING": "Kedźbu: Tuta funkcija ma dwójne parametry.", + "PROCEDURES_IFRETURN_WARNING": "Kedźbu: Tutón blok so jenož w funkcije definicije wužiwa.", + "WORKSPACE_COMMENT_DEFAULT_TEXT": "Zdźěl něšto…", + "WORKSPACE_ARIA_LABEL": "Dźěłowy wobłuk Blockly", + "DIALOG_OK": "W porjadku", + "DIALOG_CANCEL": "Přetorhnyć" +} diff --git a/msg/json/hy.json b/msg/json/hy.json index 8f34c7312..f0a2f299f 100644 --- a/msg/json/hy.json +++ b/msg/json/hy.json @@ -70,7 +70,7 @@ "CONTROLS_FOR_TOOLTIP": "«%1» փոփոխականին սահմանված քայլով վերագրում է նախնականից սկսած մինչև վերջնական արժեքը և կատարում է նշված հրամանները։", "CONTROLS_FOR_TITLE": "հաշվել %1-ով %2-ից մինչև %3-ը %4 քայլով", "CONTROLS_FOREACH_TITLE": "ամեն մի %1 տարրի համար %2 ցանկից", - "CONTROLS_FOREACH_TOOLTIP": "Ցանկի յուրաքանչյուր անդամի արժեքը վերագրում է '%1' փոփոխականին և կատարում նշված հրամանները։", + "CONTROLS_FOREACH_TOOLTIP": "Ցանկի յուրաքանչյուր անդամի արժեքը վերագրում է '%1' փոփոխականին և կատարում նշված հրամանները։", "CONTROLS_FLOW_STATEMENTS_OPERATOR_BREAK": "դուրս գալ ցիկլից", "CONTROLS_FLOW_STATEMENTS_OPERATOR_CONTINUE": "անցնել կրկնության հաջորդ կատարմանը", "CONTROLS_FLOW_STATEMENTS_TOOLTIP_BREAK": "Դադարեցնում է տվյալ կրկնությունը", @@ -79,7 +79,7 @@ "CONTROLS_IF_TOOLTIP_1": "Եթե պայմանը ճշմարիտ է, կատարում է որոշ հրահանգներ:", "CONTROLS_IF_TOOLTIP_2": "Եթե պայմանը ճշմարիտ է, ապա կատարում է հրահանգների առաջին բլոկը: Հակառակ դեպքում կատարում է հրահանգների երկրորդ բլոկը:", "CONTROLS_IF_TOOLTIP_3": "Եթե առաջին պայմանը ճշմարիտ է, ապա կատարում է հրահանգների առաջին բլոկը: Հակառակ դեպքում, եթե երկրորդ պայմանն է ճշմարիտ, կատարում է հրահանգների երկրորդ բլոկը:", - "CONTROLS_IF_TOOLTIP_4": "Եթե առաջին պայմանը ճշմարիտ է, ապա կատարում է հրահանգների առաջին բլոկը: Հակառակ դեպքում, եթե երկրորդ պայմանն է ճշմարիտ, կատարում է հրահանգների երկրորդ բլոկը: Եթե պայմաններից ոչ մեկը ճշմարիտ չեն, ապա կատարում է հրահանգների վերջին բլոկը:", + "CONTROLS_IF_TOOLTIP_4": "Եթե առաջին պայմանը ճշմարիտ է, ապա կատարում է հրահանգների առաջին բլոկը: Հակառակ դեպքում, եթե երկրորդ պայմանն է ճշմարիտ, կատարում է հրահանգների երկրորդ բլոկը: Եթե պայմաններից ոչ մեկը ճշմարիտ չեն, ապա կատարում է հրահանգների վերջին բլոկը:", "CONTROLS_IF_MSG_IF": "եթե", "CONTROLS_IF_MSG_ELSEIF": "հակառակ դեպքում, եթե", "CONTROLS_IF_MSG_ELSE": "հակառակ դեպքում", @@ -90,9 +90,9 @@ "LOGIC_COMPARE_TOOLTIP_EQ": "Վերադարձնում է ճշմարիտ արժեք, եթե երկու մուտքերն էլ հավասար են միմյանց:", "LOGIC_COMPARE_TOOLTIP_NEQ": "Վերադարձնում է ճշմարիտ արժեք, եթե երկու մուտքերն էլ հավասար չեն միմյանց:", "LOGIC_COMPARE_TOOLTIP_LT": "Վերադարձնում է ճշմարիտ արժեք, եթե մուտքերից առաջինը փոքր է երկրորդից:", - "LOGIC_COMPARE_TOOLTIP_LTE": "Վերադարձնում է ճշմարիտ արժեք, եթե առաջին մուտքը փոքր կամ հավասար է երկրորդին:", - "LOGIC_COMPARE_TOOLTIP_GT": "Վերադարձնում է ճշմարիտ արժեք, եթե առաջին մուտքը մեծ է երկրորդից:", - "LOGIC_COMPARE_TOOLTIP_GTE": "Վերադարձնում է ճշմարիտ արժեք, եթե առաջին մուտքը մեծ կամ հավասար է երկրորդին:", + "LOGIC_COMPARE_TOOLTIP_LTE": "Վերադարձնում է ճշմարիտ արժեք, եթե առաջին մուտքը փոքր կամ հավասար է երկրորդին:", + "LOGIC_COMPARE_TOOLTIP_GT": "Վերադարձնում է ճշմարիտ արժեք, եթե առաջին մուտքը մեծ է երկրորդից:", + "LOGIC_COMPARE_TOOLTIP_GTE": "Վերադարձնում է ճշմարիտ արժեք, եթե առաջին մուտքը մեծ կամ հավասար է երկրորդին:", "LOGIC_OPERATION_TOOLTIP_AND": "Վերադարձնում է ճշմարիտ արժեք, եթե երկու մուտքերն էլ ճշմարիտ են:", "LOGIC_OPERATION_AND": "և", "LOGIC_OPERATION_TOOLTIP_OR": "Վերադարձնում է ճշմարիտ արժեք, եթե մուտքերից գոնե մեկը ճշմարիտ է:", @@ -170,12 +170,12 @@ "MATH_ONLIST_OPERATOR_STD_DEV": "ցանկի ստանդարտ շեղում", "MATH_ONLIST_TOOLTIP_STD_DEV": "Վերադարձնում է ցանկի ստանդարտ շեղումը:", "MATH_ONLIST_OPERATOR_RANDOM": "ցանկի պատահական տարր", - "MATH_ONLIST_TOOLTIP_RANDOM": "Վերադարձնում է պատահական տարր ցանկից:", + "MATH_ONLIST_TOOLTIP_RANDOM": "Վերադարձնում է պատահական տարր ցանկից:", "MATH_MODULO_TITLE": "%1֊ի և %2֊ի բաժանման մնացորդը", "MATH_MODULO_TOOLTIP": "Վերադարձնում է երկու թվերի բաժանման մնացորդը:", "MATH_CONSTRAIN_TITLE": "սահմանափակել %1֊ը %2֊ի և %3֊ի միջև", "MATH_CONSTRAIN_TOOLTIP": "Սահմանափակել թիվը երկու արժեքներով (ներառյալ)", - "MATH_RANDOM_INT_TITLE": "պատահական ամբողջ թիվ %1 -ից %2 -ը", + "MATH_RANDOM_INT_TITLE": "պատահական ամբողջ թիվ %1 -ից %2 -ը", "MATH_RANDOM_INT_TOOLTIP": "Վերադարձնում է պատահական ամբողջ թիվ տրված երկու թվերի միջև (ներառյալ):", "MATH_RANDOM_FLOAT_HELPURL": "https://en.wikipedia.org/wiki/Պատահական_թվերի_գեներատոր", "MATH_RANDOM_FLOAT_TITLE_RANDOM": "պատահական կոտորակ", @@ -229,7 +229,7 @@ "TEXT_PROMPT_TOOLTIP_TEXT": "Հարցնել տեքստ օգտատիրոջից։", "TEXT_COUNT_MESSAGE0": "հաշվել %1 %2֊ում", "TEXT_COUNT_TOOLTIP": "Հաշվել, թե քանի անգամ է տեքստը հանդիպում մեկ այլ տեքստի մեջ։", - "TEXT_REPLACE_MESSAGE0": "փոխարինել %1֊ը %2֊ով %3֊ում", + "TEXT_REPLACE_MESSAGE0": "փոխարինել %1֊ը %2֊ով %3֊ում", "TEXT_REPLACE_TOOLTIP": "Փոխարինել տեքստի բոլոր գտնված տարբերակները մեկ այլ տեսքով։", "TEXT_REVERSE_MESSAGE0": "շրջել %1", "TEXT_REVERSE_TOOLTIP": "Փոխում է տեքստում տառերի հաջորդականությունը։", diff --git a/msg/json/id.json b/msg/json/id.json index c860d5c98..bea468f98 100644 --- a/msg/json/id.json +++ b/msg/json/id.json @@ -4,6 +4,7 @@ "Adisetiawan", "Akmaie Ajam", "Arifin.wijaya", + "Daud I.F. Argana", "Kasimtan", "Kenrick95", "Marwan Mohamad", @@ -16,16 +17,16 @@ "VARIABLES_DEFAULT_NAME": "item", "UNNAMED_KEY": "tanpa nama", "TODAY": "Hari ini", - "DUPLICATE_BLOCK": "Duplikat", + "DUPLICATE_BLOCK": "Gandakan", "ADD_COMMENT": "Tambahkan Komentar", "REMOVE_COMMENT": "Hapus Komentar", - "DUPLICATE_COMMENT": "Duplikat Komentar", + "DUPLICATE_COMMENT": "Gandakan Komentar", "EXTERNAL_INPUTS": "Input Eksternal", "INLINE_INPUTS": "Input Inline", "DELETE_BLOCK": "Hapus Blok", "DELETE_X_BLOCKS": "Hapus %1 Blok", "DELETE_ALL_BLOCKS": "Hapus semua %1 blok?", - "CLEAN_UP": "Bersihkan Blok", + "CLEAN_UP": "Rapikan Blok", "COLLAPSE_BLOCK": "Ciutkan Blok", "COLLAPSE_ALL": "Ciutkan Blok", "EXPAND_BLOCK": "Kembangkan Blok", @@ -45,7 +46,7 @@ "NEW_VARIABLE_TYPE_TITLE": "Tipe variabel baru:", "NEW_VARIABLE_TITLE": "Nama variabel baru:", "VARIABLE_ALREADY_EXISTS": "Sebuah variabel dengan nama '%1' sudah ada.", - "VARIABLE_ALREADY_EXISTS_FOR_ANOTHER_TYPE": "Variabel yg bernama '%1' sudah ada untuk tipe lain: '%2'.", + "VARIABLE_ALREADY_EXISTS_FOR_ANOTHER_TYPE": "Variabel dengan nama '%1' sudah ada dengan tipe lain: '%2'.", "VARIABLE_ALREADY_EXISTS_FOR_A_PARAMETER": "Variabel bernama '%1' sudah ada sebagai parameter dalam prosedur '%2'.", "DELETE_VARIABLE_CONFIRMATION": "Hapus %1 yang digunakan pada variabel '%2'?", "CANNOT_DELETE_VARIABLE_PROCEDURE": "Tidak bisa menghapus variabel '%1' karena variabel ini bagian dari sebuah definisi dari fungsi '%2'", @@ -57,11 +58,11 @@ "COLOUR_RGB_RED": "merah", "COLOUR_RGB_GREEN": "hijau", "COLOUR_RGB_BLUE": "biru", - "COLOUR_RGB_TOOLTIP": "Buatlah warna dengan jumlah yang ditentukan dari merah, hijau dan biru. Semua nilai harus antarai 0 sampai 100.", + "COLOUR_RGB_TOOLTIP": "Buatlah warna dengan jumlah yang ditentukan dari merah, hijau dan biru. Semua nilai harus di antara 0 sampai 100.", "COLOUR_BLEND_TITLE": "campur", "COLOUR_BLEND_COLOUR1": "warna 1", "COLOUR_BLEND_COLOUR2": "warna 2", - "COLOUR_BLEND_RATIO": "rasio", + "COLOUR_BLEND_RATIO": "perbandingan", "COLOUR_BLEND_TOOLTIP": "Campur dua warna secara bersamaan dengan perbandingan (0.0 - 1.0).", "CONTROLS_REPEAT_TITLE": "ulangi %1 kali", "CONTROLS_REPEAT_INPUT_DO": "kerjakan", @@ -197,9 +198,9 @@ "TEXT_INDEXOF_OPERATOR_LAST": "temukan kejadian terakhir dalam teks", "TEXT_CHARAT_TITLE": "dalam teks %1 %2", "TEXT_CHARAT_FROM_START": "ambil huruf ke #", - "TEXT_CHARAT_FROM_END": "ambil huruf nomor # dari belakang", - "TEXT_CHARAT_FIRST": "ambil huruf pertama", - "TEXT_CHARAT_LAST": "ambil huruf terakhir", + "TEXT_CHARAT_FROM_END": "ambil huruf nomor # dari belakang", + "TEXT_CHARAT_FIRST": "ambil huruf pertama", + "TEXT_CHARAT_LAST": "ambil huruf terakhir", "TEXT_CHARAT_RANDOM": "ambil huruf secara acak", "TEXT_CHARAT_TOOLTIP": "Kembalikan karakter dari posisi tertentu.", "TEXT_GET_SUBSTRING_TOOLTIP": "Kembalikan spesifik bagian dari teks.", @@ -317,7 +318,7 @@ "PROCEDURES_ALLOW_STATEMENTS": "memungkinkan pernyataan", "PROCEDURES_DEF_DUPLICATE_WARNING": "Peringatan: Fungsi ini memiliki parameter duplikat.", "PROCEDURES_CALLNORETURN_TOOLTIP": "Menjalankan fungsi '%1' yang ditetapkan pengguna.", - "PROCEDURES_CALLRETURN_TOOLTIP": "Menjalankan fungsi '%1' yang ditetapkan pengguna dan menggunakan outputnya.", + "PROCEDURES_CALLRETURN_TOOLTIP": "Menjalankan fungsi '%1' yang ditetapkan pengguna dan menggunakan outputnya.", "PROCEDURES_MUTATORCONTAINER_TITLE": "input", "PROCEDURES_MUTATORCONTAINER_TOOLTIP": "Menambah, menghapus, atau menyusun ulang masukan untuk fungsi ini.", "PROCEDURES_MUTATORARG_TITLE": "masukan Nama:", diff --git a/msg/json/inh.json b/msg/json/inh.json index c121fe38a..c9627b333 100644 --- a/msg/json/inh.json +++ b/msg/json/inh.json @@ -10,14 +10,14 @@ "VARIABLES_DEFAULT_NAME": "элемент", "UNNAMED_KEY": "цӀи яц", "TODAY": "Тахан", - "DUPLICATE_BLOCK": "Кеп яккха", + "DUPLICATE_BLOCK": "Шолхадаккха", "ADD_COMMENT": "ТӀатоха алар (комментари)", "REMOVE_COMMENT": "ДӀадаккха алар (комментари)", "DUPLICATE_COMMENT": "Комментарий шолхаяккха", "EXTERNAL_INPUTS": "Арахьара юкъеоттадаьраш", "INLINE_INPUTS": "Чухьнахьара юкъеоттадаьраш", - "DELETE_BLOCK": "ДӀаяккха блок", - "DELETE_X_BLOCKS": "ДӀаяккха %1 блокаш", + "DELETE_BLOCK": "Блок дӀаяккха", + "DELETE_X_BLOCKS": "%1 блок дӀаяккха", "DELETE_ALL_BLOCKS": "ДӀаяккха еррига блокаш (%1)?", "CLEAN_UP": "ДӀаяха блокаш", "COLLAPSE_BLOCK": "ДIахьулъе блок", diff --git a/msg/json/it.json b/msg/json/it.json index 3c066a180..e7b658f1f 100644 --- a/msg/json/it.json +++ b/msg/json/it.json @@ -78,7 +78,7 @@ "CONTROLS_FOR_TOOLTIP": "Fa sì che la variabile '%1' prenda tutti i valori a partire dal numero di partenza fino a quello di arrivo, con passo pari all'intervallo specificato, ed esegue il blocco indicato.", "CONTROLS_FOR_TITLE": "conta con %1 da %2 a %3 per %4", "CONTROLS_FOREACH_TITLE": "per ogni elemento %1 nella lista %2", - "CONTROLS_FOREACH_TOOLTIP": "Per ogni elemento in una lista, imposta la variabile '%1' pari all'elemento e quindi esegue alcune istruzioni.", + "CONTROLS_FOREACH_TOOLTIP": "Per ogni elemento in una lista, imposta la variabile '%1' pari all'elemento e quindi esegue alcune istruzioni.", "CONTROLS_FLOW_STATEMENTS_OPERATOR_BREAK": "esce dal ciclo", "CONTROLS_FLOW_STATEMENTS_OPERATOR_CONTINUE": "prosegui con la successiva iterazione del ciclo", "CONTROLS_FLOW_STATEMENTS_TOOLTIP_BREAK": "Esce dal ciclo.", diff --git a/msg/json/ja.json b/msg/json/ja.json index b85adf44b..0cee86da9 100644 --- a/msg/json/ja.json +++ b/msg/json/ja.json @@ -56,6 +56,7 @@ "NEW_VARIABLE_TITLE": "新しい変数の名前:", "VARIABLE_ALREADY_EXISTS": "変数名 '%1' は既に存在しています。", "VARIABLE_ALREADY_EXISTS_FOR_ANOTHER_TYPE": "'%2' 型の '%1' という名前の変数が既に存在します。", + "VARIABLE_ALREADY_EXISTS_FOR_A_PARAMETER": "'%2' 手続きの '%1' という名前の変数が既に存在します。", "DELETE_VARIABLE_CONFIRMATION": "%1か所で使われている変数 '%2' を削除しますか?", "CANNOT_DELETE_VARIABLE_PROCEDURE": "変数 '%1' は関数 '%2' の定義の一部であるため、削除できません", "DELETE_VARIABLE": "変数 '%1' を削除", diff --git a/msg/json/kab.json b/msg/json/kab.json index 88a531070..cabe44e75 100644 --- a/msg/json/kab.json +++ b/msg/json/kab.json @@ -68,7 +68,7 @@ "CONTROLS_WHILEUNTIL_TOOLTIP_UNTIL": "Skud azal d ucciḍ, selkem ihi tinadin.", "CONTROLS_FOR_TOOLTIP": "Mudd i umutti '%1' azalen seg umḍan n tazwara armi d amḍan n taggara, s tmerna n usurif yettunefken, sakin selkem tinaḍin yettunefken.", "CONTROLS_FOR_TITLE": "siḍen akked %1 seg %2 ar %3 s %4", - "CONTROLS_FOREACH_TITLE": "i yal aferdis %1 di tebdart %2", + "CONTROLS_FOREACH_TITLE": "i yal aferdis %1 di tebdart %2", "CONTROLS_FOREACH_TOOLTIP": "I yal aferdis n tebdart, mudd azal n uferdis i umutti '%1', sakin selkem tinaḍin.", "CONTROLS_FLOW_STATEMENTS_OPERATOR_BREAK": "ffeɣ seg tneddict", "CONTROLS_FLOW_STATEMENTS_OPERATOR_CONTINUE": "kemmel s wallus d tneddict d-iteddun", @@ -145,9 +145,9 @@ "MATH_ONLIST_OPERATOR_SUM": "Timernit n tebdart", "MATH_ONLIST_TOOLTIP_SUM": "Ad d-yerr timernit n yimḍanen meṛṛa deg tebdart.", "MATH_ONLIST_OPERATOR_MIN": "adday n tebdart", - "MATH_ONLIST_TOOLTIP_MIN": "Ad d-yerr amḍan ameẓẓyan di tebdart.", + "MATH_ONLIST_TOOLTIP_MIN": "Ad d-yerr amḍan ameẓẓyan di tebdart.", "MATH_ONLIST_OPERATOR_MAX": "afellay n tebdart", - "MATH_ONLIST_TOOLTIP_MAX": "Ad d-yerr amḍan ameqqran di tebdart.", + "MATH_ONLIST_TOOLTIP_MAX": "Ad d-yerr amḍan ameqqran di tebdart.", "MATH_ONLIST_OPERATOR_AVERAGE": "talemmast n tebdart", "MATH_ONLIST_TOOLTIP_AVERAGE": "Ad d-yerr talemmas( tasnamḍant) n wazalen umḍinen di tebdart.", "MATH_ONLIST_OPERATOR_MEDIAN": "tanammast n tebdart", @@ -267,7 +267,7 @@ "LISTS_SET_INDEX_TOOLTIP_SET_RANDOM": "Ad yesbadu aferdis agacuran di tebdart.", "LISTS_SET_INDEX_TOOLTIP_INSERT_FROM": "Ad iger aferdis n wadig yettwamlen deg tabdart.", "LISTS_SET_INDEX_TOOLTIP_INSERT_FIRST": "Ad iger aferdis di tazwara n tebdart.", - "LISTS_SET_INDEX_TOOLTIP_INSERT_LAST": "Ad yernu aferdis ar taggara n tebdart.", + "LISTS_SET_INDEX_TOOLTIP_INSERT_LAST": "Ad yernu aferdis ar taggara n tebdart.", "LISTS_SET_INDEX_TOOLTIP_INSERT_RANDOM": "Ad iger aferdis s wudem agacuran deg tebdart.", "LISTS_GET_SUBLIST_START_FROM_START": "awi-d tabdart tasnawant seg #", "LISTS_GET_SUBLIST_START_FROM_END": "awi-d tabdart tasnawant seg # si taggara", diff --git a/msg/json/km.json b/msg/json/km.json index 0d09b1ea2..125541a5f 100644 --- a/msg/json/km.json +++ b/msg/json/km.json @@ -8,8 +8,8 @@ "VARIABLES_DEFAULT_NAME": "ធាតុ", "TODAY": "ថ្ងៃនេះ", "DUPLICATE_BLOCK": "ធ្វើស្ទួន", - "ADD_COMMENT": "បន្ថែម​មតិ", - "REMOVE_COMMENT": "ដក​មតិ​ចេញ", + "ADD_COMMENT": "បន្ថែមមតិ", + "REMOVE_COMMENT": "ដកមតិចេញ", "EXTERNAL_INPUTS": "ធាតុបញ្ចូលខាងក្រៅ", "DELETE_BLOCK": "លុបប្លុក", "DELETE_X_BLOCKS": "លុបប្លុក %1", @@ -17,13 +17,13 @@ "DISABLE_BLOCK": "បិទប្លុក", "ENABLE_BLOCK": "បើកប្លុក", "HELP": "ជំនួយ", - "UNDO": "មិន​ធ្វើ​វិញ", - "REDO": "ធ្វើ​វិញ", - "CHANGE_VALUE_TITLE": "ប្ដូរ​តម្លៃ៖", - "RENAME_VARIABLE": "ដក​អថេរ​ចេញ...", - "RENAME_VARIABLE_TITLE": "ប្ដូរ​ឈ្មោះ​អថេរ​ទាំង '%1' ទៅ​ជា៖", + "UNDO": "មិនធ្វើវិញ", + "REDO": "ធ្វើវិញ", + "CHANGE_VALUE_TITLE": "ប្ដូរតម្លៃ៖", + "RENAME_VARIABLE": "ដកអថេរចេញ...", + "RENAME_VARIABLE_TITLE": "ប្ដូរឈ្មោះអថេរទាំង '%1' ទៅជា៖", "NEW_VARIABLE": "បង្កើតអថេរ...", - "NEW_VARIABLE_TITLE": "ឈ្មោះ​អថេរ​ថ្មី៖", - "COLOUR_PICKER_TOOLTIP": "ជ្រើស​ពណ៌​មួយ​ពី​បន្ទះ​ពណ៌", + "NEW_VARIABLE_TITLE": "ឈ្មោះអថេរថ្មី៖", + "COLOUR_PICKER_TOOLTIP": "ជ្រើសពណ៌មួយពីបន្ទះពណ៌", "DIALOG_OK": "យល់ព្រម" } diff --git a/msg/json/kn.json b/msg/json/kn.json index c134988b2..b811ca90c 100644 --- a/msg/json/kn.json +++ b/msg/json/kn.json @@ -45,8 +45,8 @@ "NEW_VARIABLE_TYPE_TITLE": "ಹೊಸ ಚರಾಂಶದ ಡೇಟಾಪ್ರಕಾರ:", "NEW_VARIABLE_TITLE": "ಹೊಸ ಚರಾಂಶದ ಹೆಸರು:", "VARIABLE_ALREADY_EXISTS": "'%1' ಹೆಸರಿನ ಚರಾಂಶ ಈಗಾಗಲೇ ಅಸ್ತಿತ್ವದಲ್ಲಿದೆ.", - "VARIABLE_ALREADY_EXISTS_FOR_ANOTHER_TYPE": "%1' ಹೆಸರಿನ ಚರಾಂಶ ಈಗಾಗಲೇ '%2' ಡೇಟಾ ಪ್ರಕಾರದಲ್ಲಿ ಅಸ್ತಿತ್ವದಲ್ಲಿದೆ.", - "DELETE_VARIABLE_CONFIRMATION": "'%2' ಚರಾಂಶದ '%1' ಉಪಯೋಗಗಳನ್ನು ಅಳಿಸುವುದೇ ?", + "VARIABLE_ALREADY_EXISTS_FOR_ANOTHER_TYPE": "%1' ಹೆಸರಿನ ಚರಾಂಶ ಈಗಾಗಲೇ '%2' ಡೇಟಾ ಪ್ರಕಾರದಲ್ಲಿ ಅಸ್ತಿತ್ವದಲ್ಲಿದೆ.", + "DELETE_VARIABLE_CONFIRMATION": "'%2' ಚರಾಂಶದ '%1' ಉಪಯೋಗಗಳನ್ನು ಅಳಿಸುವುದೇ ?", "CANNOT_DELETE_VARIABLE_PROCEDURE": "'%1' ಚರಾಂಶವನ್ನು ಅಳಿಸಲಾಗುವುದಿಲ್ಲ. ಏಕೆಂದರೆ ಇದು '%2' ಕಾರ್ಯಘಟಕದ ವ್ಯಾಖ್ಯಾನದ ಭಾಗವಾಗಿದೆ", "DELETE_VARIABLE": "'%1' ಚರಾಂಶವನ್ನು ಅಳಿಸು", "COLOUR_PICKER_TOOLTIP": "ವರ್ಣಫಲಕದಿಂದ ಬಣ್ಣವನ್ನು ಆರಿಸು.", @@ -69,18 +69,18 @@ "CONTROLS_WHILEUNTIL_OPERATOR_UNTIL": "ತನಕ ಪುನರಾವರ್ತಿಸು", "CONTROLS_WHILEUNTIL_TOOLTIP_WHILE": "ಮೌಲ್ಯವು ಸತ್ಯವಾಗಿರುವವರೆಗೆ, ಕೆಲವು ಹೇಳಿಕೆಗಳನ್ನು ಮಾಡಿ.", "CONTROLS_WHILEUNTIL_TOOLTIP_UNTIL": "ಮೌಲ್ಯವು ಸುಳ್ಳಾಗಿರುವವರೆಗೆ, ಕೆಲವು ಹೇಳಿಕೆಗಳನ್ನು ಮಾಡಿ.", - "CONTROLS_FOR_TOOLTIP": "ಚರಾಂಶವಾದ %1 ಪ್ರಾರಂಭ ಸಂಖ್ಯೆಯಿಂದ ಅಂತಿಮ ಸಂಖ್ಯೆಯವರೆಗೆ ಮೌಲ್ಯಗಳನ್ನು ತೆಗೆದುಕೊಳ್ಳಲಿ, ನಿರ್ದಿಷ್ಟ ಮಧ್ಯಂತರದಿಂದ ಎಣಿಸಿ, ಮತ್ತು ನಿರ್ದಿಷ್ಟಪಡಿಸಿದ ಬ್ಲಾಕ್ ಗಳನ್ನು ಮಾಡಲಿ.", + "CONTROLS_FOR_TOOLTIP": "ಚರಾಂಶವಾದ %1 ಪ್ರಾರಂಭ ಸಂಖ್ಯೆಯಿಂದ ಅಂತಿಮ ಸಂಖ್ಯೆಯವರೆಗೆ ಮೌಲ್ಯಗಳನ್ನು ತೆಗೆದುಕೊಳ್ಳಲಿ, ನಿರ್ದಿಷ್ಟ ಮಧ್ಯಂತರದಿಂದ ಎಣಿಸಿ, ಮತ್ತು ನಿರ್ದಿಷ್ಟಪಡಿಸಿದ ಬ್ಲಾಕ್ ಗಳನ್ನು ಮಾಡಲಿ.", "CONTROLS_FOR_TITLE": "%1 ಜೊತೆ ಎಣಿಸು %2 ಇಂದ %3 ತನಕ %4 ಪ್ರಮಾಣದಲ್ಲಿ", - "CONTROLS_FOREACH_TITLE": "%2 ಪಟ್ಟಿಯಲ್ಲಿರುವ ಪ್ರತಿ %1 ಅಂಶಕ್ಕೆ", - "CONTROLS_FOREACH_TOOLTIP": "ಪಟ್ಟಿಯಲ್ಲಿರುವ ಪ್ರತಿಯೊಂದು ಅಂಶಕ್ಕೆ, ಚರಾಂಶ '%1'ನ್ನು ಅಂಶಕ್ಕೆ ಜೋಡಿಸಿ, ತದನಂತರ ಕೆಲವು ಹೇಳಿಕೆಗಳನ್ನು ಮಾಡಿ.", + "CONTROLS_FOREACH_TITLE": "%2 ಪಟ್ಟಿಯಲ್ಲಿರುವ ಪ್ರತಿ %1 ಅಂಶಕ್ಕೆ", + "CONTROLS_FOREACH_TOOLTIP": "ಪಟ್ಟಿಯಲ್ಲಿರುವ ಪ್ರತಿಯೊಂದು ಅಂಶಕ್ಕೆ, ಚರಾಂಶ '%1'ನ್ನು ಅಂಶಕ್ಕೆ ಜೋಡಿಸಿ, ತದನಂತರ ಕೆಲವು ಹೇಳಿಕೆಗಳನ್ನು ಮಾಡಿ.", "CONTROLS_FLOW_STATEMENTS_OPERATOR_BREAK": "ಪುನರಾವರ್ತನೆಯಿಂದ ನಿರ್ಗಮಿಸು", "CONTROLS_FLOW_STATEMENTS_OPERATOR_CONTINUE": "ಲೂಪ್ ಮುಂದಿನ ಪುನರಾವರ್ತನೆಯೊಂದಿಗೆ ಮುಂದುವರೆಯಲಿ", "CONTROLS_FLOW_STATEMENTS_TOOLTIP_BREAK": "ಒಳಹೊಕ್ಕಿರುವ ಲೂಪಿನಿಂದ ನಿರ್ಗಮಿಸು.", "CONTROLS_FLOW_STATEMENTS_TOOLTIP_CONTINUE": "ಈ ಲೂಪಿನ ಉಳಿದ ಭಾಗವನ್ನು ಬಿಟ್ಟು, ಮುಂದಿನ ಪುನರಾವರ್ತನೆಯೊಂದಿಗೆ ಮುಂದುವರಿಸಿ.", - "CONTROLS_FLOW_STATEMENTS_WARNING": "ಎಚ್ಚರಿಕೆ: ಈ ಬ್ಲಾಕನ್ನು ಲೂಪ್‌ನಲ್ಲಿ ಮಾತ್ರ ಬಳಸಬಹುದು.", + "CONTROLS_FLOW_STATEMENTS_WARNING": "ಎಚ್ಚರಿಕೆ: ಈ ಬ್ಲಾಕನ್ನು ಲೂಪ್‌ನಲ್ಲಿ ಮಾತ್ರ ಬಳಸಬಹುದು.", "CONTROLS_IF_TOOLTIP_1": "ಮೌಲ್ಯವು ಸತ್ಯವಾಗಿದ್ದರೆ, ಕೆಲವು ಹೇಳಿಕೆಗಳನ್ನು ಮಾಡಿ.", "CONTROLS_IF_TOOLTIP_2": "ಮೌಲ್ಯವು ಸತ್ಯ ಆಗಿದ್ದರೆ, ಮೊದಲನೇ ವಿಭಾಗದ ಹೇಳಿಕೆಗಳನ್ನು ಮಾಡು, ಇಲ್ಲವಾದರೆ, ಎರಡನೇ ವಿಭಾಗದ ಹೇಳಿಕೆಗಳನ್ನು ಮಾಡು.", - "CONTROLS_IF_TOOLTIP_3": "ಮೊದಲನೇ ಮೌಲ್ಯವು ಸತ್ಯವಾಗಿದ್ದರೆ, ಮೊದಲ ವಿಭಾಗದ ಹೇಳಿಕೆಗಳನ್ನು ಮಾಡಿ. ಇಲ್ಲದಿದ್ದರೆ, ಎರಡನೇ ಮೌಲ್ಯವು ಸತ್ಯವಾಗಿದ್ದರೆ, ಎರಡನೇ ವಿಭಾಗದ ಹೇಳಿಕೆಗಳನ್ನು ಮಾಡಿ.", + "CONTROLS_IF_TOOLTIP_3": "ಮೊದಲನೇ ಮೌಲ್ಯವು ಸತ್ಯವಾಗಿದ್ದರೆ, ಮೊದಲ ವಿಭಾಗದ ಹೇಳಿಕೆಗಳನ್ನು ಮಾಡಿ. ಇಲ್ಲದಿದ್ದರೆ, ಎರಡನೇ ಮೌಲ್ಯವು ಸತ್ಯವಾಗಿದ್ದರೆ, ಎರಡನೇ ವಿಭಾಗದ ಹೇಳಿಕೆಗಳನ್ನು ಮಾಡಿ.", "CONTROLS_IF_TOOLTIP_4": "ಮೊದಲನೆಯ ಮೌಲ್ಯವು ಸತ್ಯ ಆಗಿದ್ದರೆ, ಮೊದಲ ವಿಭಾಗದ ಹೇಳಿಕೆಗಳನ್ನು ಮಾಡು. ಇಲ್ಲವಾದರೆ, ಎರಡನೇ ಮೌಲ್ಯವು ಸತ್ಯವಾಗಿದ್ದರೆ, ಎರಡನೇ ವಿಭಾಗದ ಹೇಳಿಕೆಗಳನ್ನು ಮಾಡು. ಒಂದುವೇಳೆ ಯಾವುದೇ ಮೌಲ್ಯವೂ ಸತ್ಯವಾಗಿರದಿದ್ದರೆ, ಕೊನೆಯ ವಿಭಾಗದ ಹೇಳಿಕೆಗಳನ್ನು ಮಾಡು.", "CONTROLS_IF_MSG_IF": "ಆಗಿದ್ದರೆ", "CONTROLS_IF_MSG_ELSEIF": "ಆಗಿರದಿದ್ದರೆ", @@ -102,9 +102,9 @@ "LOGIC_NEGATE_TOOLTIP": "ಒದಗಿಸುವ ಅಂಶ ಸುಳ್ಳಾಗಿದ್ದರೆ ಸರಿಯೆನ್ನಿ. ಒದಗಿಸುವ ಅಂಶ ಸತ್ಯವಾಗಿದ್ದರೆ ತಪ್ಪೆನ್ನಿ.", "LOGIC_BOOLEAN_TRUE": "ಸತ್ಯ", "LOGIC_BOOLEAN_FALSE": "ಸುಳ್ಳು", - "LOGIC_BOOLEAN_TOOLTIP": "ಸತ್ಯ ಅಥವಾ ಸುಳ್ಳು ಎರಡರಲ್ಲಿ ಒಂದನ್ನು ಹಿಂತಿರುಗಿಸುವುದು.", + "LOGIC_BOOLEAN_TOOLTIP": "ಸತ್ಯ ಅಥವಾ ಸುಳ್ಳು ಎರಡರಲ್ಲಿ ಒಂದನ್ನು ಹಿಂತಿರುಗಿಸುವುದು.", "LOGIC_NULL": "ಶೂನ್ಯ", - "LOGIC_NULL_TOOLTIP": "ಶೂನ್ಯವನ್ನು ಹಿಂತಿರುಗಿಸಿ.", + "LOGIC_NULL_TOOLTIP": "ಶೂನ್ಯವನ್ನು ಹಿಂತಿರುಗಿಸಿ.", "LOGIC_TERNARY_CONDITION": "ಪರೀಕ್ಷೆ", "LOGIC_TERNARY_IF_TRUE": "ಸತ್ಯ ಆಗಿದ್ದರೆ", "LOGIC_TERNARY_IF_FALSE": "ಸುಳ್ಳು ಆಗಿದ್ದರೆ", @@ -128,8 +128,8 @@ "MATH_SINGLE_TOOLTIP_NEG": "ಸಂಖ್ಯೆಯೊಂದರ ನಿರಾಕರಣೆಯನ್ನು ಹಿಂತಿರುಗಿಸಿ.", "MATH_SINGLE_TOOLTIP_LN": "ಸಂಖ್ಯೆಯ ನೈಸರ್ಗಿಕ ಲಾಗರಿಥಮ್ ಅನ್ನು ಹಿಂತಿರುಗಿಸಿ.", "MATH_SINGLE_TOOLTIP_LOG10": "ಒಂದು ಸಂಖ್ಯೆಯ ಆಧಾರ 10 ಲಾಗರಿಥಮನ್ನು ಹಿಂತಿರುಗಿಸಿ.", - "MATH_SINGLE_TOOLTIP_EXP": "ಒಂದು ಸಂಖ್ಯೆಯ e ಘಾತವಾಗಿದ್ದಾಗಿನ ಮೌಲ್ಯವನ್ನು ಹಿಂತಿರುಗಿಸಿ.", - "MATH_SINGLE_TOOLTIP_POW10": "ಒಂದು ಸಂಖ್ಯೆಯ 10ರ ಘಾತವಾಗಿದ್ದಾಗಿನ ಮೌಲ್ಯವನ್ನು ಹಿಂತಿರುಗಿಸಿ.", + "MATH_SINGLE_TOOLTIP_EXP": "ಒಂದು ಸಂಖ್ಯೆಯ e ಘಾತವಾಗಿದ್ದಾಗಿನ ಮೌಲ್ಯವನ್ನು ಹಿಂತಿರುಗಿಸಿ.", + "MATH_SINGLE_TOOLTIP_POW10": "ಒಂದು ಸಂಖ್ಯೆಯ 10ರ ಘಾತವಾಗಿದ್ದಾಗಿನ ಮೌಲ್ಯವನ್ನು ಹಿಂತಿರುಗಿಸಿ.", "MATH_TRIG_TOOLTIP_SIN": "ಕೋನವೊಂದರ ಸೈನ್ ಅನ್ನು ಹಿಂತಿರುಗಿಸಿ(ರೇಡಿಯನ್‌ಗಳಲ್ಲ)", "MATH_TRIG_TOOLTIP_COS": "ಕೋನವೊಂದರ ಕೊಸೈನ್ ಅನ್ನು ಹಿಂತಿರುಗಿಸಿ(ರೇಡಿಯನ್‌ಗಳಲ್ಲ)", "MATH_TRIG_TOOLTIP_TAN": "ಕೋನವೊಂದರ ಟ್ಯಾಂಜೆಂಟ್ ಅನ್ನು ಹಿಂತಿರುಗಿಸಿ(ರೇಡಿಯನ್‌ಗಳಲ್ಲ)", @@ -161,7 +161,7 @@ "MATH_ONLIST_TOOLTIP_AVERAGE": "ಪಟ್ಟಿಯಲ್ಲಿನ ಸಂಖ್ಯಾ ಮೌಲ್ಯಗಳ ಸರಾಸರಿ (ಅಂಕಗಣಿತದ ಸರಾಸರಿ) ಹಿಂತಿರುಗಿಸಿ.", "MATH_ONLIST_OPERATOR_MEDIAN": "ಪಟ್ಟಿಯ ಮಧ್ಯಾಂಕ", "MATH_ONLIST_TOOLTIP_MEDIAN": "ಪಟ್ಟಿಯಲ್ಲಿನ ಮಧ್ಯಾಂಕ ಸಂಖ್ಯೆಯನ್ನು ಹಿಂತಿರುಗಿಸಿ.", - "MATH_ONLIST_OPERATOR_MODE": "ಪಟ್ಟಿಯಲ್ಲಿನ ಆಗಾಗ್ಗೆ ಕಾಣಿಸಿಕೊಳ್ಳುವ ಸಂಖ್ಯೆಗಳು", + "MATH_ONLIST_OPERATOR_MODE": "ಪಟ್ಟಿಯಲ್ಲಿನ ಆಗಾಗ್ಗೆ ಕಾಣಿಸಿಕೊಳ್ಳುವ ಸಂಖ್ಯೆಗಳು", "MATH_ONLIST_TOOLTIP_MODE": "ಪಟ್ಟಿಯಲ್ಲಿರುವ ಸಾಮಾನ್ಯ ಅಂಶಗಳ ಪಟ್ಟಿಯನ್ನು ಹಿಂತಿರುಗಿಸಿ.", "MATH_ONLIST_OPERATOR_STD_DEV": "ಪಟ್ಟಿಯ ಪ್ರಮಾಣಿತ ವಿಚಲನ", "MATH_ONLIST_TOOLTIP_STD_DEV": "ಪಟ್ಟಿಯ ಪ್ರಮಾಣಿತ ವಿಚಲನವನ್ನು ಹಿಂತಿರುಗಿಸಿ.", @@ -169,33 +169,33 @@ "MATH_ONLIST_TOOLTIP_RANDOM": "ಪಟ್ಟಿಯ ಯಾದೃಚ್ಛಿತ ಅಂಶವನ್ನು ಹಿಂತಿರುಗಿಸಿ.", "MATH_MODULO_TITLE": "%1 ÷ %2 ರ ಶೇಷ", "MATH_MODULO_TOOLTIP": "ಎರಡು ಸಂಖ್ಯೆಗಳ ವಿಭಜನೆಯ ಶೇಷವನ್ನು ಹಿಂತಿರುಗಿಸಿ.", - "MATH_CONSTRAIN_TITLE": "%1ಅನ್ನು ಕಡಿಮೆ %2 ಹೆಚ್ಚಿನ %3 ಮೌಲ್ಯಗಳ ನಡುವೆ ನಿರ್ಬಂಧಿಸಿ", + "MATH_CONSTRAIN_TITLE": "%1ಅನ್ನು ಕಡಿಮೆ %2 ಹೆಚ್ಚಿನ %3 ಮೌಲ್ಯಗಳ ನಡುವೆ ನಿರ್ಬಂಧಿಸಿ", "MATH_CONSTRAIN_TOOLTIP": "ನಿಗದಿತ ಮಿತಿಗಳ ನಡುವೆ ಸಂಖ್ಯೆಯನ್ನು ನಿರ್ಬಂಧಿಸಿ(ಒಳಗೊ೦ಡ).", "MATH_RANDOM_INT_TITLE": "ಯಾದೃಚ್ಛಿತ ಪೂರ್ಣಾಂಕ %1 ರಿಂದ %2 ರವರೆಗೆ", "MATH_RANDOM_INT_TOOLTIP": "ಎರಡು ನಿರ್ದಿಷ್ಟ ಮಿತಿಗಳ ನಡುವೆ ಇರುವ ಯಾದೃಚ್ಛಿತ ಪೂರ್ಣಾಂಕವನ್ನು ಹಿಂತಿರುಗಿಸಿ.", "MATH_RANDOM_FLOAT_TITLE_RANDOM": "ಯಾದೃಚ್ಛಿತ ಭಿನ್ನರಾಶಿ", - "MATH_RANDOM_FLOAT_TOOLTIP": "0.0 (ಒಳಗೊಂಡ) ಮತ್ತು 1.0 (ವಿಶೇಷ) ನಡುವೆ ಯಾದೃಚ್ಛಿತ ಭಿನ್ನರಾಶಿಯನ್ನು ಹಿಂತಿರುಗಿಸಿ.", + "MATH_RANDOM_FLOAT_TOOLTIP": "0.0 (ಒಳಗೊಂಡ) ಮತ್ತು 1.0 (ವಿಶೇಷ) ನಡುವೆ ಯಾದೃಚ್ಛಿತ ಭಿನ್ನರಾಶಿಯನ್ನು ಹಿಂತಿರುಗಿಸಿ.", "MATH_ATAN2_TITLE": "X:%1 Y:%2 ಬಿಂದುವಿನ ಆರ್ಕ್ ಟ್ಯಾನ್", - "MATH_ATAN2_TOOLTIP": "ಬಿಂದು (X,Y) ನ ಆರ್ಕ್ ಟ್ಯಾಂಜೆಂಟ್ ನ್ನು -180 ರಿಂದ 180 ರವರೆಗಿನ ಡಿಗ್ರಿಗಳಲ್ಲಿ ಹಿಂತಿರುಗಿಸಿ.", + "MATH_ATAN2_TOOLTIP": "ಬಿಂದು (X,Y) ನ ಆರ್ಕ್ ಟ್ಯಾಂಜೆಂಟ್ ನ್ನು -180 ರಿಂದ 180 ರವರೆಗಿನ ಡಿಗ್ರಿಗಳಲ್ಲಿ ಹಿಂತಿರುಗಿಸಿ.", "TEXT_TEXT_TOOLTIP": "ಒಂದು ಅಕ್ಷರ, ಪದ ಅಥವಾ ಪಠ್ಯದ ಸಾಲು.", "TEXT_JOIN_TITLE_CREATEWITH": "ಇದರೊಂದಿಗೆ ಪಠ್ಯವನ್ನು ರಚಿಸಿ", "TEXT_JOIN_TOOLTIP": "ಹಲವಾರು ಅಂಶಗಳನ್ನು ಒಟ್ಟುಗೂಡಿಸುವ ಮೂಲಕ ಪಠ್ಯದ ತುಣುಕನ್ನು ರಚಿಸಿ.", "TEXT_CREATE_JOIN_TITLE_JOIN": "ಸೇರಿಸು", "TEXT_CREATE_JOIN_TOOLTIP": "ಈ ಬ್ಲಾಕನ್ನು ಮರು ಸಂರಚಿಸಲು ಅದರ ಭಾಗಗಳನ್ನು ಸೇರಿಸು, ತೆಗೆ ಅಥವಾ ಮರುಕ್ರಮಗೊಳಿಸು.", "TEXT_CREATE_JOIN_ITEM_TOOLTIP": "ಪಠ್ಯಕ್ಕೆ ಒಂದು ಅಂಶವನ್ನು ಸೇರಿಸಿ.", - "TEXT_APPEND_TITLE": " %1 ಕ್ಕೆ ಪಠ್ಯ %2 ನ್ನು ಕೊನೆಯಲ್ಲಿ ಸೇರಿಸಿ.", - "TEXT_APPEND_TOOLTIP": "'%1' ಚರಾಂಶಕ್ಕೆ ಕೆಲವು ಪಠ್ಯವನ್ನು ಕೊನೆಯಲ್ಲಿ ಸೇರಿಸಿ.", + "TEXT_APPEND_TITLE": "%1 ಕ್ಕೆ ಪಠ್ಯ %2 ನ್ನು ಕೊನೆಯಲ್ಲಿ ಸೇರಿಸಿ.", + "TEXT_APPEND_TOOLTIP": "'%1' ಚರಾಂಶಕ್ಕೆ ಕೆಲವು ಪಠ್ಯವನ್ನು ಕೊನೆಯಲ್ಲಿ ಸೇರಿಸಿ.", "TEXT_LENGTH_TITLE": "%1ರ ಉದ್ದ", "TEXT_LENGTH_TOOLTIP": "ಒದಗಿಸಿದ ಪಠ್ಯದಲ್ಲಿನ ಅಕ್ಷರಗಳ ಸಂಖ್ಯೆಯನ್ನು (ಖಾಲಿ ಜಾಗ ಒಳಗೊಂಡಂತೆ) ಹಿಂತಿರುಗಿಸುವುದು.", "TEXT_ISEMPTY_TITLE": "%1 ಖಾಲಿಯಿದೆ", - "TEXT_ISEMPTY_TOOLTIP": "ಒದಗಿಸಿದ ಪಠ್ಯ ಖಾಲಿಯಾಗಿದ್ದರೆ 'ಸತ್ಯ' ಹಿಂತಿರುಗಿಸುವುದು.", + "TEXT_ISEMPTY_TOOLTIP": "ಒದಗಿಸಿದ ಪಠ್ಯ ಖಾಲಿಯಾಗಿದ್ದರೆ 'ಸತ್ಯ' ಹಿಂತಿರುಗಿಸುವುದು.", "TEXT_INDEXOF_TOOLTIP": "ಎರಡನೇ ಪಠ್ಯದಲ್ಲಿ ಮೊದಲ ಪಠ್ಯದ ಸಂಭಾವ್ಯದ, ಮೊದಲ/ಕೊನೆಯ ಸೂಚ್ಯಂಕವನ್ನು ಹಿಂತಿರುಗಿಸುವುದು. ಪಠ್ಯ ಕಂಡುಬಂದಿಲ್ಲದಿದ್ದರೆ %1 ಅನ್ನು ಹಿಂತಿರುಗಿಸುವುದು.", "TEXT_INDEXOF_TITLE": "ಪಠ್ಯದಲ್ಲಿ %1 %2 %3", "TEXT_INDEXOF_OPERATOR_FIRST": "ಪಠ್ಯದ ಮೊದಲ ಸಂಭವವನ್ನು ಹುಡುಕಿ", "TEXT_INDEXOF_OPERATOR_LAST": "ಪಠ್ಯದ ಕೊನೆಯ ಸಂಭವವನ್ನು ಹುಡುಕಿ", "TEXT_CHARAT_TITLE": "ಪಠ್ಯದಲ್ಲಿ %1 %2", - "TEXT_CHARAT_FROM_START": "# ಅಕ್ಷರ ಪಡೆಯಿರಿ", - "TEXT_CHARAT_FROM_END": "ಕೊನೆಯಿಂದ # ಅಕ್ಷರ ಪಡೆಯಿರಿ", + "TEXT_CHARAT_FROM_START": "# ಅಕ್ಷರ ಪಡೆಯಿರಿ", + "TEXT_CHARAT_FROM_END": "ಕೊನೆಯಿಂದ # ಅಕ್ಷರ ಪಡೆಯಿರಿ", "TEXT_CHARAT_FIRST": "ಮೊದಲ ಅಕ್ಷರವನ್ನು ಪಡೆಯಿರಿ", "TEXT_CHARAT_LAST": "ಕೊನೆಯ ಅಕ್ಷರವನ್ನು ಪಡೆಯಿರಿ", "TEXT_CHARAT_RANDOM": "ಯಾದೃಚ್ಛಿತ ಅಕ್ಷರವನ್ನು ಪಡೆಯಿರಿ", @@ -203,7 +203,7 @@ "TEXT_GET_SUBSTRING_TOOLTIP": "ಪಠ್ಯದ ನಿರ್ದಿಷ್ಟ ಭಾಗವನ್ನು ಹಿಂತಿರುಗಿಸುವುದು.", "TEXT_GET_SUBSTRING_INPUT_IN_TEXT": "ಪಠ್ಯದಲ್ಲಿ", "TEXT_GET_SUBSTRING_START_FROM_START": "# ಅಕ್ಷರದಿಂದ ಚಿಹ್ನೆಗಳ ಉಪಸರಣಿಯನ್ನು ಪಡೆಯಿರಿ", - "TEXT_GET_SUBSTRING_START_FROM_END": "# ಅಕ್ಷರದಿಂದ ಚಿಹ್ನೆಗಳ ಉಪಸರಣಿಯನ್ನು ಕೊನೆಯಿಂದ ಪಡೆಯಿರಿ", + "TEXT_GET_SUBSTRING_START_FROM_END": "# ಅಕ್ಷರದಿಂದ ಚಿಹ್ನೆಗಳ ಉಪಸರಣಿಯನ್ನು ಕೊನೆಯಿಂದ ಪಡೆಯಿರಿ", "TEXT_GET_SUBSTRING_START_FIRST": "ಮೊದಲ ಅಕ್ಷರದಿಂದ ಉಪಸರಣಿಯನ್ನು ಪಡೆಯಿರಿ", "TEXT_GET_SUBSTRING_END_FROM_START": "# ಅಕ್ಷರದವರೆಗೆ", "TEXT_GET_SUBSTRING_END_FROM_END": "ಕೊನೆಯಿಂದ # ಅಕ್ಷರದವರೆಗೆ", @@ -220,12 +220,12 @@ "TEXT_PRINT_TOOLTIP": "ನಿರ್ದಿಷ್ಟಪಡಿಸಿದ ಪಠ್ಯ, ಸಂಖ್ಯೆ ಅಥವಾ ಇತರ ಮೌಲ್ಯವನ್ನು ಮುದ್ರಿಸಿ.", "TEXT_PROMPT_TYPE_TEXT": "ಸಂದೇಶದೊಂದಿಗೆ ಪಠ್ಯಕ್ಕಾಗಿ ಜ್ಞಾಪಿಸಿ", "TEXT_PROMPT_TYPE_NUMBER": "ಸಂದೇಶದೊಂದಿಗೆ ಸಂಖ್ಯೆಗಾಗಿ ಜ್ಞಾಪಿಸಿ", - "TEXT_PROMPT_TOOLTIP_NUMBER": "ಬಳಕೆದಾರರಿಗೆ ಸಂಖ್ಯೆಗಾಗಿ ಜ್ಞಾಪಿಸಿ.", - "TEXT_PROMPT_TOOLTIP_TEXT": "ಬಳಕೆದಾರರಿಗೆ ಕೆಲವು ಪಠ್ಯಕ್ಕಾಗಿ ಜ್ಞಾಪಿಸಿ.", + "TEXT_PROMPT_TOOLTIP_NUMBER": "ಬಳಕೆದಾರರಿಗೆ ಸಂಖ್ಯೆಗಾಗಿ ಜ್ಞಾಪಿಸಿ.", + "TEXT_PROMPT_TOOLTIP_TEXT": "ಬಳಕೆದಾರರಿಗೆ ಕೆಲವು ಪಠ್ಯಕ್ಕಾಗಿ ಜ್ಞಾಪಿಸಿ.", "TEXT_COUNT_MESSAGE0": "%2 ರಲ್ಲಿ %1 ಅನ್ನು ಎಣಿಸಿ", "TEXT_COUNT_TOOLTIP": "ಬೇರೆ ಕೆಲವು ಪಠ್ಯಗಳಲ್ಲಿ ಕೆಲವು ಪಠ್ಯವು ಎಷ್ಟು ಬಾರಿ ಸಂಭವಿಸುತ್ತದೆ ಎಂಬುದನ್ನು ಎಣಿಸಿ.", "TEXT_REPLACE_MESSAGE0": "%1 ಅನ್ನು %3 ರಲ್ಲಿ %2 ರೊಂದಿಗೆ ಬದಲಾಯಿಸಿ.", - "TEXT_REPLACE_TOOLTIP": "ಬೇರೆ ಪಠ್ಯದೊಳಗಿನ ಎಲ್ಲಾ ಕೆಲವು ಪಠ್ಯದ ಸಂಭಾವ್ಯಗಳನ್ನು ಬದಲಾಯಿಸಿ.", + "TEXT_REPLACE_TOOLTIP": "ಬೇರೆ ಪಠ್ಯದೊಳಗಿನ ಎಲ್ಲಾ ಕೆಲವು ಪಠ್ಯದ ಸಂಭಾವ್ಯಗಳನ್ನು ಬದಲಾಯಿಸಿ.", "TEXT_REVERSE_MESSAGE0": "%1 ಅನ್ನು ಹಿಮ್ಮುಖಗೊಳಿಸಿ.", "TEXT_REVERSE_TOOLTIP": "ಪಠ್ಯದಲ್ಲಿನ ಅಕ್ಷರಗಳ ಕ್ರಮವನ್ನು ಹಿಮ್ಮುಖಗೊಳಿಸಿ.", "LISTS_CREATE_EMPTY_TITLE": "ಖಾಲಿ ಪಟ್ಟಿಯನ್ನು ರಚಿಸಿ", @@ -236,7 +236,7 @@ "LISTS_CREATE_WITH_CONTAINER_TOOLTIP": "ಈ ಪಟ್ಟಿಯ ಬ್ಲಾಕ್ ಅನ್ನು ಮರುಸಂರಚಿಸಲು ವಿಭಾಗಗಳನ್ನು ಸೇರಿಸಿ, ತೆಗೆದುಹಾಕಿ ಅಥವಾ ಮರುಕ್ರಮಗೊಳಿಸಿ.", "LISTS_CREATE_WITH_ITEM_TOOLTIP": "ಪಟ್ಟಿಗೆ ಒಂದು ಅಂಶವನ್ನು ಸೇರಿಸಿ.", "LISTS_REPEAT_TOOLTIP": "ಕೊಟ್ಟಿರುವ ಮೌಲ್ಯವನ್ನು ನಿರ್ದಿಷ್ಟ ಬಾರಿ ಪುನರಾವರ್ತಿಸುವ ಪಟ್ಟಿಯನ್ನು ರಚಿಸುತ್ತದೆ.", - "LISTS_REPEAT_TITLE": "%1 ಅಂಶದೊಂದಿಗೆ %2 ಬಾರಿ ಪುನರಾವರ್ತಿತಗೊಂಡ ಪಟ್ಟಿಯನ್ನು ರಚಿಸಿ.", + "LISTS_REPEAT_TITLE": "%1 ಅಂಶದೊಂದಿಗೆ %2 ಬಾರಿ ಪುನರಾವರ್ತಿತಗೊಂಡ ಪಟ್ಟಿಯನ್ನು ರಚಿಸಿ.", "LISTS_LENGTH_TITLE": "%1 ರ ಉದ್ದ", "LISTS_LENGTH_TOOLTIP": "ಪಟ್ಟಿಯ ಉದ್ದವನ್ನು ಹಿಂತಿರುಗಿಸುವುದು.", "LISTS_ISEMPTY_TITLE": "%1 ಖಾಲಿಯಾಗಿದೆ", @@ -277,7 +277,7 @@ "LISTS_SET_INDEX_TOOLTIP_INSERT_FROM": "ಪಟ್ಟಿಯಲ್ಲಿ ನಿರ್ದಿಷ್ಟಪಡಿಸಿದ ಸ್ಥಾನದಲ್ಲಿ ಅಂಶವನ್ನು ಸೇರಿಸುತ್ತದೆ.", "LISTS_SET_INDEX_TOOLTIP_INSERT_FIRST": "ಪಟ್ಟಿಯ ಪ್ರಾರಂಭದಲ್ಲಿ ಅಂಶವನ್ನು ಸೇರಿಸುತ್ತದೆ.", "LISTS_SET_INDEX_TOOLTIP_INSERT_LAST": "ಅಂಶವನ್ನು ಪಟ್ಟಿಯ ಕೊನೆಯಲ್ಲಿ ಸೇರಿಸಿ.", - "LISTS_SET_INDEX_TOOLTIP_INSERT_RANDOM": "ಅಂಶವನ್ನು ಪಟ್ಟಿಯಲ್ಲಿ ಯಾದೃಚ್ಛಿಕವಾಗಿ ಒಳಸೇರಿಸುತ್ತದೆ.", + "LISTS_SET_INDEX_TOOLTIP_INSERT_RANDOM": "ಅಂಶವನ್ನು ಪಟ್ಟಿಯಲ್ಲಿ ಯಾದೃಚ್ಛಿಕವಾಗಿ ಒಳಸೇರಿಸುತ್ತದೆ.", "LISTS_GET_SUBLIST_START_FROM_START": "# ನಿಂದ ಉಪ-ಪಟ್ಟಿಯನ್ನು ಪಡೆಯಿರಿ", "LISTS_GET_SUBLIST_START_FROM_END": "# ನಿಂದ ಉಪ-ಪಟ್ಟಿಯನ್ನು ಕೊನೆಯಿಂದ ಪಡೆಯಿರಿ", "LISTS_GET_SUBLIST_START_FIRST": "ಮೊದಲಿನಿಂದ ಉಪ-ಪಟ್ಟಿಯನ್ನು ಪಡೆಯಿರಿ", @@ -296,13 +296,13 @@ "LISTS_SPLIT_TEXT_FROM_LIST": "ಪಟ್ಟಿಯಿಂದ ಪಠ್ಯವನ್ನು ಮಾಡಿ", "LISTS_SPLIT_WITH_DELIMITER": "ಪ್ರಾರಂಭ ಅಥವಾ ಅಂತ್ಯ ಚಿನ್ಹೆಯೊಡನೆ", "LISTS_SPLIT_TOOLTIP_SPLIT": "ಪ್ರಾರಂಭ ಅಥವಾ ಅಂತ್ಯ ಚಿನ್ಹೆಯಲ್ಲಿ ಮುರಿದು, ಪಠ್ಯವನ್ನು ವಿಭಜಿಸಿ ಪಠ್ಯಗಳ ಪಟ್ಟಿಮಾಡಿ.", - "LISTS_SPLIT_TOOLTIP_JOIN": "ಪ್ರಾರಂಭ ಅಥವಾ ಅಂತ್ಯ ಚಿನ್ಹೆಯಿಂದ ಬೇರ್ಪಡಿಸಲಾಗಿರುವ ಪಠ್ಯಗಳ ಪಟ್ಟಿಯನ್ನೆಲ್ಲಾ ಒಂದು ಪಠ್ಯಕ್ಕೆ ಸೇರಿಸಿ.", + "LISTS_SPLIT_TOOLTIP_JOIN": "ಪ್ರಾರಂಭ ಅಥವಾ ಅಂತ್ಯ ಚಿನ್ಹೆಯಿಂದ ಬೇರ್ಪಡಿಸಲಾಗಿರುವ ಪಠ್ಯಗಳ ಪಟ್ಟಿಯನ್ನೆಲ್ಲಾ ಒಂದು ಪಠ್ಯಕ್ಕೆ ಸೇರಿಸಿ.", "LISTS_REVERSE_MESSAGE0": "%1 ನ್ನು ಹಿಮ್ಮುಖಗೊಳಿಸಿ", "LISTS_REVERSE_TOOLTIP": "ಪಟ್ಟಿಯ ಪ್ರತಿಯನ್ನು ಹಿಮ್ಮುಖಗೊಳಿಸಿ.", "VARIABLES_GET_TOOLTIP": "ಈ ಚರಾಂಶದ ಮೌಲ್ಯವನ್ನು ಹಿಂತಿರುಗಿಸುತ್ತದೆ.", - "VARIABLES_GET_CREATE_SET": "'%1 ಬದಲಿಸಿ' ರಚಿಸಿ", + "VARIABLES_GET_CREATE_SET": "'%1 ಬದಲಿಸಿ' ರಚಿಸಿ", "VARIABLES_SET": "%1 ನ್ನು %2 ಕ್ಕೆ ಬದಲಿಸಿ", - "VARIABLES_SET_TOOLTIP": "ಈ ಚರಾಂಶವನ್ನು ಸೇರಿಸುವ ಅಂಶಕ್ಕೆ ಸಮಾನವಾಗಿ ಬದಲಿಸುತ್ತದೆ.", + "VARIABLES_SET_TOOLTIP": "ಈ ಚರಾಂಶವನ್ನು ಸೇರಿಸುವ ಅಂಶಕ್ಕೆ ಸಮಾನವಾಗಿ ಬದಲಿಸುತ್ತದೆ.", "VARIABLES_SET_CREATE_GET": "'%1 ಪಡೆಯಿರಿ' ರಚಿಸಿ", "PROCEDURES_DEFNORETURN_TITLE": "ಗೆ", "PROCEDURES_DEFNORETURN_PROCEDURE": "ಏನಾದರೂ ಮಾಡಿ", @@ -319,7 +319,7 @@ "PROCEDURES_MUTATORCONTAINER_TITLE": "ಒಳಾoಶಗಳು", "PROCEDURES_MUTATORCONTAINER_TOOLTIP": "ಈ ಕಾರ್ಯಕ್ಕೆ ಒಳಾoಶಗಳನ್ನು ಸೇರಿಸಿ, ತೆಗೆದುಹಾಕಿ ಅಥವಾ ಮರುಕ್ರಮಗೊಳಿಸಿ.", "PROCEDURES_MUTATORARG_TITLE": "ಒಳಾoಶದ ಹೆಸರು:", - "PROCEDURES_MUTATORARG_TOOLTIP": "ಕಾರ್ಯಘಟಕಕ್ಕೆ ಒಳಾoಶವನ್ನು ಸೇರಿಸಿ.", + "PROCEDURES_MUTATORARG_TOOLTIP": "ಕಾರ್ಯಘಟಕಕ್ಕೆ ಒಳಾoಶವನ್ನು ಸೇರಿಸಿ.", "PROCEDURES_HIGHLIGHT_DEF": "ಕಾರ್ಯಘಟಕದ ವ್ಯಾಖ್ಯಾನವನ್ನು ಹೈಲೈಟ್ ಮಾಡಿ", "PROCEDURES_CREATE_DO": "'%1' ರಚಿಸಿ", "PROCEDURES_IFRETURN_TOOLTIP": "ಒಂದು ಮೌಲ್ಯವು ಸತ್ಯವಾಗಿದ್ದರೆ, ಎರಡನೇ ಮೌಲ್ಯವನ್ನು ಹಿಂತಿರುಗಿಸಿ.", diff --git a/msg/json/ko.json b/msg/json/ko.json index c688b704b..85be433f5 100644 --- a/msg/json/ko.json +++ b/msg/json/ko.json @@ -173,7 +173,7 @@ "MATH_IS_NEGATIVE": "가 음(-)수 이면", "MATH_IS_DIVISIBLE_BY": "가 다음 수로 나누어 떨어지면 :", "MATH_IS_TOOLTIP": "어떤 수가 짝 수, 홀 수, 소 수, 정 수, 양 수, 음 수, 나누어 떨어지는 수 인지 검사해 결과값을 돌려줍니다. 참(true) 또는 거짓(false) 값을 돌려줌.", - "MATH_CHANGE_TITLE": "%1 을 %2 만큼 바꾸기", + "MATH_CHANGE_TITLE": "%1 을 %2 만큼 바꾸기", "MATH_CHANGE_TOOLTIP": "변수 '%1' 에 저장되어있는 값에, 어떤 수를 더해, 변수에 다시 저장합니다.", "MATH_ROUND_HELPURL": "https://ko.wikipedia.org/wiki/반올림", "MATH_ROUND_TOOLTIP": "어떤 수를 반올림/올림/버림한 결과를, 정수값으로 돌려줍니다.", diff --git a/msg/json/ky.json b/msg/json/ky.json index a07ac859d..b999ae11c 100644 --- a/msg/json/ky.json +++ b/msg/json/ky.json @@ -15,8 +15,8 @@ "EXTERNAL_INPUTS": "Тышкы Толуктоолор", "INLINE_INPUTS": "Ички Толуктоолор", "DELETE_BLOCK": "Блокту Өчүрүү", - "DELETE_X_BLOCKS": "Блоктун 1%ын Өчүрүү", - "DELETE_ALL_BLOCKS": "1% блоктордун баарын өчүрүү, йа?", + "DELETE_X_BLOCKS": "Блоктун %1ын Өчүрүү", + "DELETE_ALL_BLOCKS": "%1 блоктордун баарын өчүрүү, йа?", "CLEAN_UP": "Блокторду тазалоо", "COLLAPSE_BLOCK": "Блокту жашыруу", "COLLAPSE_ALL": "Блокторду жашыруу", @@ -57,7 +57,7 @@ "CONTROLS_IF_MSG_ELSEIF": "же болбосо", "CONTROLS_IF_MSG_ELSE": "башка", "LOGIC_OPERATION_OR": "же", - "LOGIC_NEGATE_TITLE": " %1 эмес", + "LOGIC_NEGATE_TITLE": "%1 эмес", "LOGIC_BOOLEAN_TRUE": "чындык", "LOGIC_BOOLEAN_FALSE": "жаңылыш", "LOGIC_TERNARY_CONDITION": "текшерүү", diff --git a/msg/json/lki.json b/msg/json/lki.json index 38def6755..fdddd11f0 100644 --- a/msg/json/lki.json +++ b/msg/json/lki.json @@ -50,7 +50,7 @@ "CONTROLS_WHILEUNTIL_OPERATOR_UNTIL": "تکرار تا وةختێ گإ", "CONTROLS_WHILEUNTIL_TOOLTIP_WHILE": "تا زمانی که یک مقدار صحیح است، چند عبارت را انجام بده.", "CONTROLS_WHILEUNTIL_TOOLTIP_UNTIL": "تا زمانی که یک مقدار ناصحیح است، چند عبارت را انجام بده.", - "CONTROLS_FOR_TOOLTIP": "متغیر %1 را در مقادیر شروع‌شده از عدد انتهای به عدد انتهایی را دارد، با فواصل مشخص‌شده می‌شمارد و این بلوک مشخص‌شده را انجام می‌دهد.", + "CONTROLS_FOR_TOOLTIP": "متغیر %1 را در مقادیر شروع‌شده از عدد انتهای به عدد انتهایی را دارد، با فواصل مشخص‌شده می‌شمارد و این بلوک مشخص‌شده را انجام می‌دهد.", "CONTROLS_FOR_TITLE": "با تعداد %1 از %2 به %3 با گام‌های %4", "CONTROLS_FOREACH_TITLE": "ئةرا هر مورد %1 وۀ نام لیست%2", "CONTROLS_FOREACH_TOOLTIP": "برای هر مورد در این فهرست، تنظیم متغیر «%1» به مورد و انجام تعدادی عبارت.", @@ -185,9 +185,9 @@ "TEXT_CHANGECASE_OPERATOR_LOWERCASE": "به حروف کوچک", "TEXT_CHANGECASE_OPERATOR_TITLECASE": "به حروف بزرگ عنوان", "TEXT_TRIM_TOOLTIP": "کپی از متن با فاصله‌های حذف‌شده از یک یا هر دو پایان باز می‌گرداند.", - "TEXT_TRIM_OPERATOR_BOTH": "تراشیدن فاصله‌ها از هر دو طرف", - "TEXT_TRIM_OPERATOR_LEFT": "تراشیدن فاصله‌ها از طرف چپ", - "TEXT_TRIM_OPERATOR_RIGHT": "تراشیدن فاصله‌ها از طرف چپ", + "TEXT_TRIM_OPERATOR_BOTH": "تراشیدن فاصله‌ها از هر دو طرف", + "TEXT_TRIM_OPERATOR_LEFT": "تراشیدن فاصله‌ها از طرف چپ", + "TEXT_TRIM_OPERATOR_RIGHT": "تراشیدن فاصله‌ها از طرف چپ", "TEXT_PRINT_TITLE": "چاپ %1", "TEXT_PRINT_TOOLTIP": "چاپ متن، عدد یا هر مقدار دیگر مشخص‌شده.", "TEXT_PROMPT_TYPE_TEXT": "اعلان برای متن با پیام", diff --git a/msg/json/lo.json b/msg/json/lo.json index fde92a3bb..20b28fbd1 100644 --- a/msg/json/lo.json +++ b/msg/json/lo.json @@ -65,7 +65,7 @@ "CONTROLS_IF_IF_TOOLTIP": "ເພີ່ມ, ລຶບ, ຫຼື ຈັດລຽງບລັອກ \"ຖ້າ\" ນີ້ໃໝ່.", "CONTROLS_IF_ELSEIF_TOOLTIP": "ເພີ່ມເງື່ອນໄຂລົງໃນບລັອກ \"ຖ້າ\".", "CONTROLS_IF_ELSE_TOOLTIP": "ເພີ່ມສິ່ງສຸດທ້າຍ, ກວດຫາຄວາມເປັນໄປໄດ້ທັງໝົດຂອງບລັອກ \"ຖ້າ\".", - "LOGIC_COMPARE_HELPURL": "https://​​lo.wikipedia.org/wiki/ອະສົມຜົນ", + "LOGIC_COMPARE_HELPURL": "https://lo.wikipedia.org/wiki/ອະສົມຜົນ", "LOGIC_COMPARE_TOOLTIP_EQ": "ຄືນຄ່າຈິງຖ້າຄ່າທີ່ີໃສ່ທັງສອງຄ່ານັ້ນເທົ່າກັນ.", "LOGIC_COMPARE_TOOLTIP_NEQ": "ຄືນຄ່າຈິງຖ້າຄ່າທີ່ີໃສ່ທັງສອງຄ່ານັ້ນບໍ່ເທົ່າກັນ.", "LOGIC_COMPARE_TOOLTIP_LT": "ຄືນຄ່າເປັນຈິງຖ້າຄ່າທຳອິດນ້ອຍກວ່າຄ່າທີ່ສອງ.", diff --git a/msg/json/lt.json b/msg/json/lt.json index a22aaec7c..6664cadb9 100644 --- a/msg/json/lt.json +++ b/msg/json/lt.json @@ -80,7 +80,7 @@ "CONTROLS_IF_MSG_IF": "jei", "CONTROLS_IF_MSG_ELSEIF": "arba jei", "CONTROLS_IF_MSG_ELSE": "kitu atveju", - "CONTROLS_IF_IF_TOOLTIP": "Galite pridėt/pašalinti/pertvarkyti sąlygų \"šakas\".", + "CONTROLS_IF_IF_TOOLTIP": "Galite pridėt/pašalinti/pertvarkyti sąlygų \"šakas\".", "CONTROLS_IF_ELSEIF_TOOLTIP": "Pridėti sąlygą „jei“ blokui.", "CONTROLS_IF_ELSE_TOOLTIP": "Pridėti veiksmų vykdymo variantą/\"šaką\", kai netenkinama nė viena sąlyga.", "LOGIC_COMPARE_TOOLTIP_EQ": "Tenkinama, jei abu reiškiniai lygūs.", @@ -202,9 +202,9 @@ "TEXT_GET_SUBSTRING_END_FROM_END": "iki raidės nuo galo #", "TEXT_GET_SUBSTRING_END_LAST": "iki pabaigos", "TEXT_CHANGECASE_TOOLTIP": "Kitu atvėju, grąžina teksto kopiją.", - "TEXT_CHANGECASE_OPERATOR_UPPERCASE": " DIDŽIOSIOM RAIDĖM", - "TEXT_CHANGECASE_OPERATOR_LOWERCASE": " mažosiom raidėm", - "TEXT_CHANGECASE_OPERATOR_TITLECASE": " Pavadinimo Raidėmis", + "TEXT_CHANGECASE_OPERATOR_UPPERCASE": "DIDŽIOSIOM RAIDĖM", + "TEXT_CHANGECASE_OPERATOR_LOWERCASE": "mažosiom raidėm", + "TEXT_CHANGECASE_OPERATOR_TITLECASE": "Pavadinimo Raidėmis", "TEXT_TRIM_TOOLTIP": "Grąžina teksto kopiją, pašalinus tarpus iš vieno ar abiejų kraštų.", "TEXT_TRIM_OPERATOR_BOTH": "išvalyk tarpus šonuose", "TEXT_TRIM_OPERATOR_LEFT": "išvalyk tarpus pradžioje", diff --git a/msg/json/mk.json b/msg/json/mk.json index b79d45c50..77401a2a2 100644 --- a/msg/json/mk.json +++ b/msg/json/mk.json @@ -77,7 +77,7 @@ "LOGIC_COMPARE_TOOLTIP_EQ": "Дава вистина ако обата вноса се еднакви.", "LOGIC_COMPARE_TOOLTIP_NEQ": "Дава вистина ако обата вноса не се еднакви.", "LOGIC_COMPARE_TOOLTIP_LT": "Дава вистина ако првиот внос е помал од вториот.", - "LOGIC_COMPARE_TOOLTIP_LTE": "Дава вистина ако првиот внос е помал или еднаков на вториот.", + "LOGIC_COMPARE_TOOLTIP_LTE": "Дава вистина ако првиот внос е помал или еднаков на вториот.", "LOGIC_COMPARE_TOOLTIP_GT": "Дава вистина ако првиот внос е поголем од вториот.", "LOGIC_COMPARE_TOOLTIP_GTE": "Дава вистина ако првиот внос е поголем или еднаков на вториот.", "LOGIC_OPERATION_TOOLTIP_AND": "Дава вистина ако обата вноса се вистинити.", diff --git a/msg/json/mnw.json b/msg/json/mnw.json index 62f8c4271..53d12cc53 100644 --- a/msg/json/mnw.json +++ b/msg/json/mnw.json @@ -6,6 +6,7 @@ ] }, "VARIABLES_DEFAULT_NAME": "ဒကုတ်", + "UNNAMED_KEY": "ဟွံကဵုလဝ်ယၟု", "TODAY": "တ္ၚဲဏအ်", "DUPLICATE_BLOCK": "ချာဲ", "ADD_COMMENT": "စုတ် လညာတ်", diff --git a/msg/json/ms.json b/msg/json/ms.json index 539eb129b..50bf66c8d 100644 --- a/msg/json/ms.json +++ b/msg/json/ms.json @@ -261,7 +261,7 @@ "LISTS_GET_SUBLIST_START_FROM_END": "dapatkan sub-senarai daripada # daripada terakhir", "LISTS_GET_SUBLIST_START_FIRST": "dapatkan sub-senarai daripada pertama", "LISTS_GET_SUBLIST_END_FROM_START": "ke #", - "LISTS_GET_SUBLIST_END_FROM_END": "ke # dari akhir", + "LISTS_GET_SUBLIST_END_FROM_END": "ke # dari akhir", "LISTS_GET_SUBLIST_END_LAST": "ke akhir", "LISTS_GET_SUBLIST_TOOLTIP": "Wujudkan salinan bahagian yang ditentukan dari senarai.", "LISTS_SPLIT_LIST_FROM_TEXT": "buat senarai dgn teks", diff --git a/msg/json/my.json b/msg/json/my.json index 70d82ec81..3a412ab46 100644 --- a/msg/json/my.json +++ b/msg/json/my.json @@ -12,7 +12,7 @@ "ADD_COMMENT": "မှတ်ချက် ပေါင်းထည့်ရန်", "REMOVE_COMMENT": "မှတ်ချက် ဖယ်ရှားရန်", "DUPLICATE_COMMENT": "မှတ်ချက်ပွားရန်", - "HELP": "အ​ကူ​အ​ညီ​", + "HELP": "အကူအညီ", "UNDO": "နောက်ပြန် ပြန်ပြင်ရန်", "REDO": "ရှေ့သို့ ပြန်ပြင်ရန်", "CHANGE_VALUE_TITLE": "တန်ဖိုး ပြောင်းလဲရန်:", diff --git a/msg/json/ne.json b/msg/json/ne.json index 1d502b05d..f4af6bab7 100644 --- a/msg/json/ne.json +++ b/msg/json/ne.json @@ -14,7 +14,7 @@ "EXTERNAL_INPUTS": "बाह्य इन्पुटहरू", "INLINE_INPUTS": "इनलाइन इन्पुटहरू", "DELETE_BLOCK": "ब्लक हटाउने", - "DELETE_X_BLOCKS": " %1 ब्लकहरू हटाउने", + "DELETE_X_BLOCKS": "%1 ब्लकहरू हटाउने", "CLEAN_UP": "ब्लकहरू हटाउनुहोस्", "COLLAPSE_BLOCK": "ब्लक भत्काउनुहोस्", "COLLAPSE_ALL": "ब्लक भत्काउनुहोस्", @@ -34,7 +34,7 @@ "COLOUR_RGB_RED": "रातो", "COLOUR_RGB_GREEN": "हरियो", "COLOUR_RGB_BLUE": "निलो", - "COLOUR_BLEND_COLOUR1": " रङ्ग १", + "COLOUR_BLEND_COLOUR1": "रङ्ग १", "COLOUR_BLEND_COLOUR2": "रङ्ग २", "COLOUR_BLEND_RATIO": "अनुपात", "MATH_IS_EVEN": "जोर संख्या हो", diff --git a/msg/json/nl.json b/msg/json/nl.json index 66d342ad8..8961dc112 100644 --- a/msg/json/nl.json +++ b/msg/json/nl.json @@ -120,7 +120,7 @@ "LOGIC_TERNARY_IF_TRUE": "als waar", "LOGIC_TERNARY_IF_FALSE": "als onwaar", "LOGIC_TERNARY_TOOLTIP": "Test de voorwaarde in \"test\". Als de voorwaarde \"waar\" is, geef de waarde van \"als waar\" terug; geef anders de waarde van \"als onwaar\" terug.", - "MATH_NUMBER_HELPURL": "https://nl.wikipedia.org/wiki/Getal_%28wiskunde%29", + "MATH_NUMBER_HELPURL": "https://nl.wikipedia.org/wiki/Getal_(wiskunde)", "MATH_NUMBER_TOOLTIP": "Een getal.", "MATH_TRIG_SIN": "sin", "MATH_TRIG_COS": "cos", @@ -152,7 +152,7 @@ "MATH_TRIG_TOOLTIP_ACOS": "Geeft de arccosinus van een getal.", "MATH_TRIG_TOOLTIP_ATAN": "Geeft de arctangens van een getal.", "MATH_CONSTANT_HELPURL": "https://nl.wikipedia.org/wiki/Wiskundige_constante", - "MATH_CONSTANT_TOOLTIP": "Geeft een van de vaak voorkomende constante waardes: π (3.141…), e (2.718…), φ (1.618…), √2 (1.414…), √½ (0.707…), of ∞ (oneindig).", + "MATH_CONSTANT_TOOLTIP": "Retourneert een van de vaak voorkomende constanten: π (3.141…), e (2.718…), φ (1.618…), √2 (1.414…), √½ (0.707…), of ∞ (oneindig).", "MATH_IS_EVEN": "is even", "MATH_IS_ODD": "is oneven", "MATH_IS_PRIME": "is priemgetal", @@ -197,7 +197,7 @@ "MATH_RANDOM_FLOAT_TOOLTIP": "Geeft een willekeurige fractie tussen 0.0 (inclusief) en 1.0 (exclusief).", "MATH_ATAN2_TITLE": "atan2 van X:%1 Y:%2", "MATH_ATAN2_TOOLTIP": "Geef de boogtangens van punt (X, Y) terug in graden tussen -180 naar 180.", - "TEXT_TEXT_HELPURL": "https://nl.wikipedia.org/wiki/String_%28informatica%29", + "TEXT_TEXT_HELPURL": "https://nl.wikipedia.org/wiki/Tekenreeks", "TEXT_TEXT_TOOLTIP": "Een letter, woord of een regel tekst.", "TEXT_JOIN_TITLE_CREATEWITH": "maak tekst met", "TEXT_JOIN_TOOLTIP": "Maakt een stuk tekst door één of meer items samen te voegen.", diff --git a/msg/json/pl.json b/msg/json/pl.json index 839317946..c94d48753 100644 --- a/msg/json/pl.json +++ b/msg/json/pl.json @@ -243,7 +243,7 @@ "TEXT_PRINT_TOOLTIP": "Wyświetl określony tekst, liczbę lub inną wartość.", "TEXT_PROMPT_TYPE_TEXT": "poproś o tekst z tą wiadomością", "TEXT_PROMPT_TYPE_NUMBER": "poproś o liczbę z tą wiadomością", - "TEXT_PROMPT_TOOLTIP_NUMBER": "Zapytaj użytkownika o liczbę.", + "TEXT_PROMPT_TOOLTIP_NUMBER": "Zapytaj użytkownika o liczbę.", "TEXT_PROMPT_TOOLTIP_TEXT": "Zapytaj użytkownika o jakiś tekst.", "TEXT_COUNT_MESSAGE0": "policz %1 w %2", "TEXT_COUNT_TOOLTIP": "Liczy ile razy dany tekst występuje w innym tekście.", @@ -325,7 +325,7 @@ "VARIABLES_GET_TOOLTIP": "Zwraca wartość tej zmiennej.", "VARIABLES_GET_CREATE_SET": "Utwórz klocek 'ustaw %1'", "VARIABLES_SET": "przypisz %1 wartość %2", - "VARIABLES_SET_TOOLTIP": "Wartości zmiennej i wejście będą identyczne.", + "VARIABLES_SET_TOOLTIP": "Wartości zmiennej i wejście będą identyczne.", "VARIABLES_SET_CREATE_GET": "Utwórz klocek 'pobierz %1'", "PROCEDURES_DEFNORETURN_TITLE": "do", "PROCEDURES_DEFNORETURN_PROCEDURE": "zrób coś", diff --git a/msg/json/pt.json b/msg/json/pt.json index 55be8612a..a024b1b30 100644 --- a/msg/json/pt.json +++ b/msg/json/pt.json @@ -53,10 +53,11 @@ "NEW_VARIABLE_TITLE": "Nome da nova variável:", "VARIABLE_ALREADY_EXISTS": "Já existe uma variável com o nome de '%1'.", "VARIABLE_ALREADY_EXISTS_FOR_ANOTHER_TYPE": "Já existe uma variável chamada '%1' para outra do tipo: '%2'.", + "VARIABLE_ALREADY_EXISTS_FOR_A_PARAMETER": "Já existe uma variável chamada '%1' como parâmetro no procedimento '%2'.", "DELETE_VARIABLE_CONFIRMATION": "Eliminar %1 utilizações da variável '%2'?", "CANNOT_DELETE_VARIABLE_PROCEDURE": "Não se pode eliminar a variável '%1' porque faz parte da definição da função '%2'", "DELETE_VARIABLE": "Eliminar a variável '%1'", - "COLOUR_PICKER_HELPURL": "http://pt.wikipedia.org/wiki/Cor", + "COLOUR_PICKER_HELPURL": "https://pt.wikipedia.org/wiki/Cor", "COLOUR_PICKER_TOOLTIP": "Escolha uma cor da paleta de cores.", "COLOUR_RANDOM_TITLE": "cor aleatória", "COLOUR_RANDOM_TOOLTIP": "Escolha uma cor aleatoriamente.", @@ -70,7 +71,7 @@ "COLOUR_BLEND_COLOUR2": "cor 2", "COLOUR_BLEND_RATIO": "proporção", "COLOUR_BLEND_TOOLTIP": "Mistura duas cores com a proporção indicada (0.0 - 1.0).", - "CONTROLS_REPEAT_HELPURL": "http://pt.wikipedia.org/wiki/Estrutura_de_repeti%C3%A7%C3%A3o#Repeti.C3.A7.C3.A3o_com_vari.C3.A1vel_de_controle", + "CONTROLS_REPEAT_HELPURL": "https://pt.wikipedia.org/wiki/Estrutura_de_repeti%C3%A7%C3%A3o#Repeti.C3.A7.C3.A3o_com_vari.C3.A1vel_de_controle", "CONTROLS_REPEAT_TITLE": "repetir %1 vez", "CONTROLS_REPEAT_INPUT_DO": "faça", "CONTROLS_REPEAT_TOOLTIP": "Faça algumas instruções várias vezes.", @@ -97,7 +98,7 @@ "CONTROLS_IF_IF_TOOLTIP": "Acrescente, remova ou reordene secções para reconfigurar este bloco se.", "CONTROLS_IF_ELSEIF_TOOLTIP": "Acrescente uma condição ao bloco se.", "CONTROLS_IF_ELSE_TOOLTIP": "Acrescente uma condição de excepação final para o bloco se.", - "LOGIC_COMPARE_HELPURL": "http://pt.wikipedia.org/wiki/Inequa%C3%A7%C3%A3o", + "LOGIC_COMPARE_HELPURL": "https://pt.wikipedia.org/wiki/Inequa%C3%A7%C3%A3o", "LOGIC_COMPARE_TOOLTIP_EQ": "Retorna verdadeiro se ambas as entradas forem iguais entre si.", "LOGIC_COMPARE_TOOLTIP_NEQ": "Retorna verdadeiro se ambas as entradas forem diferentes entre si.", "LOGIC_COMPARE_TOOLTIP_LT": "Retorna verdadeiro se a primeira entrada for menor que a segunda entrada.", @@ -113,15 +114,15 @@ "LOGIC_BOOLEAN_TRUE": "verdadeiro", "LOGIC_BOOLEAN_FALSE": "falso", "LOGIC_BOOLEAN_TOOLTIP": "Retorna verdadeiro ou falso.", - "LOGIC_NULL_HELPURL": "http://en.wikipedia.org/wiki/Nullable_type", + "LOGIC_NULL_HELPURL": "https://en.wikipedia.org/wiki/Nullable_type", "LOGIC_NULL": "nulo", "LOGIC_NULL_TOOLTIP": "Retorna nulo.", - "LOGIC_TERNARY_HELPURL": "http://en.wikipedia.org/wiki/%3F:", + "LOGIC_TERNARY_HELPURL": "https://en.wikipedia.org/wiki/%3F:", "LOGIC_TERNARY_CONDITION": "teste", "LOGIC_TERNARY_IF_TRUE": "se verdadeiro", "LOGIC_TERNARY_IF_FALSE": "se falso", "LOGIC_TERNARY_TOOLTIP": "Avalia a condição em \"teste\". Se a condição for verdadeira retorna o valor \"se verdadeiro\", senão retorna o valor \"se falso\".", - "MATH_NUMBER_HELPURL": "http://pt.wikipedia.org/wiki/N%C3%BAmero", + "MATH_NUMBER_HELPURL": "https://pt.wikipedia.org/wiki/N%C3%BAmero", "MATH_NUMBER_TOOLTIP": "Um número.", "MATH_TRIG_SIN": "sin", "MATH_TRIG_COS": "cos", @@ -129,13 +130,13 @@ "MATH_TRIG_ASIN": "asin", "MATH_TRIG_ACOS": "acos", "MATH_TRIG_ATAN": "atan", - "MATH_ARITHMETIC_HELPURL": "http://pt.wikipedia.org/wiki/Aritm%C3%A9tica", + "MATH_ARITHMETIC_HELPURL": "https://pt.wikipedia.org/wiki/Aritm%C3%A9tica", "MATH_ARITHMETIC_TOOLTIP_ADD": "Retorna a soma de dois números.", "MATH_ARITHMETIC_TOOLTIP_MINUS": "Retorna a diferença de dois números.", "MATH_ARITHMETIC_TOOLTIP_MULTIPLY": "Retorna o produto de dois números.", "MATH_ARITHMETIC_TOOLTIP_DIVIDE": "Retorna o quociente da divisão de dois números.", "MATH_ARITHMETIC_TOOLTIP_POWER": "Retorna o primeiro número elevado à potência do segundo número.", - "MATH_SINGLE_HELPURL": "http://pt.wikipedia.org/wiki/Raiz_quadrada", + "MATH_SINGLE_HELPURL": "https://pt.wikipedia.org/wiki/Raiz_quadrada", "MATH_SINGLE_OP_ROOT": "raíz quadrada", "MATH_SINGLE_TOOLTIP_ROOT": "Retorna a raiz quadrada de um número.", "MATH_SINGLE_OP_ABSOLUTE": "absoluto", @@ -145,14 +146,14 @@ "MATH_SINGLE_TOOLTIP_LOG10": "Retorna o logarítmo em base 10 de um número.", "MATH_SINGLE_TOOLTIP_EXP": "Retorna o número e elevado à potência de um número.", "MATH_SINGLE_TOOLTIP_POW10": "Retorna 10 elevado à potência de um número.", - "MATH_TRIG_HELPURL": "http://pt.wikipedia.org/wiki/Fun%C3%A7%C3%A3o_trigonom%C3%A9trica", + "MATH_TRIG_HELPURL": "https://pt.wikipedia.org/wiki/Fun%C3%A7%C3%A3o_trigonom%C3%A9trica", "MATH_TRIG_TOOLTIP_SIN": "Retorna o seno de um grau (não radiano).", "MATH_TRIG_TOOLTIP_COS": "Retorna o cosseno de um grau (não radiano).", "MATH_TRIG_TOOLTIP_TAN": "Retorna a tangente de um grau (não radiano).", "MATH_TRIG_TOOLTIP_ASIN": "Retorna o arco seno de um número.", "MATH_TRIG_TOOLTIP_ACOS": "Retorna o arco cosseno de um número.", "MATH_TRIG_TOOLTIP_ATAN": "Retorna o arco tangente de um número.", - "MATH_CONSTANT_HELPURL": "http://pt.wikipedia.org/wiki/Anexo:Lista_de_constantes_matem%C3%A1ticas", + "MATH_CONSTANT_HELPURL": "https://pt.wikipedia.org/wiki/Anexo:Lista_de_constantes_matem%C3%A1ticas", "MATH_CONSTANT_TOOLTIP": "Retorna uma das constantes comuns: π (3.141…), e (2.718…), φ (1.618…), sqrt(2) (1.414…), sqrt(½) (0.707…), ou ∞ (infinito).", "MATH_IS_EVEN": "é par", "MATH_IS_ODD": "é impar", @@ -162,10 +163,10 @@ "MATH_IS_NEGATIVE": "é negativo", "MATH_IS_DIVISIBLE_BY": "é divisível por", "MATH_IS_TOOLTIP": "Verifica se um número é par, impar, primo, inteiro, positivo, negativo, ou se é divisível por outro número. Retorna verdadeiro ou falso.", - "MATH_CHANGE_HELPURL": "http://pt.wikipedia.org/wiki/Adi%C3%A7%C3%A3o", + "MATH_CHANGE_HELPURL": "https://pt.wikipedia.org/wiki/Adi%C3%A7%C3%A3o", "MATH_CHANGE_TITLE": "alterar %1 por %2", "MATH_CHANGE_TOOLTIP": "Soma um número à variável \"%1\".", - "MATH_ROUND_HELPURL": "http://pt.wikipedia.org/wiki/Arredondamento", + "MATH_ROUND_HELPURL": "https://pt.wikipedia.org/wiki/Arredondamento", "MATH_ROUND_TOOLTIP": "Arredonda um número para cima ou para baixo.", "MATH_ROUND_OPERATOR_ROUND": "arredonda", "MATH_ROUND_OPERATOR_ROUNDUP": "arredonda para cima", @@ -186,20 +187,20 @@ "MATH_ONLIST_TOOLTIP_STD_DEV": "Retorna o desvio padrão dos números da lista.", "MATH_ONLIST_OPERATOR_RANDOM": "item aleatório de uma lista", "MATH_ONLIST_TOOLTIP_RANDOM": "Retorna um elemento aleatório da lista.", - "MATH_MODULO_HELPURL": "http://pt.wikipedia.org/wiki/Opera%C3%A7%C3%A3o_m%C3%B3dulo", + "MATH_MODULO_HELPURL": "https://pt.wikipedia.org/wiki/Opera%C3%A7%C3%A3o_m%C3%B3dulo", "MATH_MODULO_TITLE": "resto da divisão de %1 ÷ %2", "MATH_MODULO_TOOLTIP": "Retorna o resto da divisão de dois números.", "MATH_CONSTRAIN_TITLE": "restringe %1 inferior %2 superior %3", "MATH_CONSTRAIN_TOOLTIP": "Restringe um número entre os limites especificados (inclusive).", - "MATH_RANDOM_INT_HELPURL": "http://pt.wikipedia.org/wiki/N%C3%BAmero_aleat%C3%B3rio", + "MATH_RANDOM_INT_HELPURL": "https://pt.wikipedia.org/wiki/N%C3%BAmero_aleat%C3%B3rio", "MATH_RANDOM_INT_TITLE": "inteiro aleatório entre %1 e %2", "MATH_RANDOM_INT_TOOLTIP": "Retorna um número inteiro entre os dois limites especificados, inclusive.", - "MATH_RANDOM_FLOAT_HELPURL": "http://pt.wikipedia.org/wiki/N%C3%BAmero_aleat%C3%B3rio", + "MATH_RANDOM_FLOAT_HELPURL": "https://pt.wikipedia.org/wiki/N%C3%BAmero_aleat%C3%B3rio", "MATH_RANDOM_FLOAT_TITLE_RANDOM": "fração aleatória", "MATH_RANDOM_FLOAT_TOOLTIP": "Insere uma fração aleatória entre 0.0 (inclusive) e 1.0 (exclusive).", "MATH_ATAN2_TITLE": "atan2 de X:%1 Y:%2", "MATH_ATAN2_TOOLTIP": "Devolver o arco tangente do ponto (X, Y) em graus entre -180 e 180.", - "TEXT_TEXT_HELPURL": "http://pt.wikipedia.org/wiki/Cadeia_de_caracteres", + "TEXT_TEXT_HELPURL": "https://pt.wikipedia.org/wiki/Cadeia_de_caracteres", "TEXT_TEXT_TOOLTIP": "Uma letra, palavra ou linha de texto.", "TEXT_JOIN_TITLE_CREATEWITH": "criar texto com", "TEXT_JOIN_TOOLTIP": "Criar um pedaço de texto juntando qualquer número de itens.", diff --git a/msg/json/qqq.json b/msg/json/qqq.json index 44456f6b6..60509d798 100644 --- a/msg/json/qqq.json +++ b/msg/json/qqq.json @@ -6,6 +6,7 @@ "Espertus", "Liuxinyu970226", "Metalhead64", + "Nike", "Robby", "Shirayuki" ] @@ -32,7 +33,7 @@ "HELP": "context menu - Provide helpful information about the selected block.\n{{Identical|Help}}", "UNDO": "context menu - Undo the previous action.\n{{Identical|Undo}}", "REDO": "context menu - Undo the previous undo action.\n{{Identical|Redo}}", - "CHANGE_VALUE_TITLE": "prompt - This message is only seen in the Opera browser. With most browsers, users can edit numeric values in blocks by just clicking and typing. Opera does not allows this, so we have to open a new window and prompt users with this message to chanage a value.", + "CHANGE_VALUE_TITLE": "prompt - This message is seen on mobile devices and the Opera browser. With most browsers, users can edit numeric values in blocks by just clicking and typing. Opera does not allow this and mobile browsers may have issues with in-line textareas. So we prompt users with this message (usually a popup) to change a value.", "RENAME_VARIABLE": "dropdown choice - When the user clicks on a variable block, this is one of the dropdown menu choices. It is used to rename the current variable. See [https://github.com/google/blockly/wiki/Variables#dropdown-menu https://github.com/google/blockly/wiki/Variables#dropdown-menu].", "RENAME_VARIABLE_TITLE": "prompt - Prompts the user to enter the new name for the selected variable. See [https://github.com/google/blockly/wiki/Variables#dropdown-menu https://github.com/google/blockly/wiki/Variables#dropdown-menu].\n\nParameters:\n* %1 - the name of the variable to be renamed.", "NEW_VARIABLE": "button text - Text on the button used to launch the variable creation dialogue.", @@ -44,12 +45,12 @@ "VARIABLE_ALREADY_EXISTS": "alert - Tells the user that the name they entered is already in use.", "VARIABLE_ALREADY_EXISTS_FOR_ANOTHER_TYPE": "alert - Tells the user that the name they entered is already in use for another type.", "VARIABLE_ALREADY_EXISTS_FOR_A_PARAMETER": "alert - Tells the user that the name they entered is already in use as a parameter to a procedure, that the variable they are renaming also exists on. Renaming would create two parameters with the same name, which is not allowed.", - "DELETE_VARIABLE_CONFIRMATION": "confirm - Ask the user to confirm their deletion of multiple uses of a variable.", + "DELETE_VARIABLE_CONFIRMATION": "confirm - Ask the user to confirm their deletion of multiple uses of a variable.", "CANNOT_DELETE_VARIABLE_PROCEDURE": "alert - Tell the user that they can't delete a variable because it's part of the definition of a function.", "DELETE_VARIABLE": "dropdown choice - Delete the currently selected variable.", "COLOUR_PICKER_HELPURL": "{{Optional}} url - Information about colour.", "COLOUR_PICKER_TOOLTIP": "tooltip - See [https://github.com/google/blockly/wiki/Colour#picking-a-colour-from-a-palette https://github.com/google/blockly/wiki/Colour#picking-a-colour-from-a-palette].", - "COLOUR_RANDOM_HELPURL": "{{Ignored}} url - A link that displays a random colour each time you visit it.", + "COLOUR_RANDOM_HELPURL": "{{Optional}} url - A link that displays a random colour each time you visit it.", "COLOUR_RANDOM_TITLE": "block text - Title of block that generates a colour at random.", "COLOUR_RANDOM_TOOLTIP": "tooltip - See [https://github.com/google/blockly/wiki/Colour#generating-a-random-colour https://github.com/google/blockly/wiki/Colour#generating-a-random-colour].", "COLOUR_RGB_HELPURL": "{{Ignored}} url - A link for colour codes with percentages (0-100%) for each component, instead of the more common 0-255, which may be more difficult for beginners.", @@ -58,7 +59,7 @@ "COLOUR_RGB_GREEN": "block input text - The amount of green (from 0 to 100) to use when [https://github.com/google/blockly/wiki/Colour#creating-a-colour-from-red-green-and-blue-components https://github.com/google/blockly/wiki/Colour#creating-a-colour-from-red-green-and-blue-components].", "COLOUR_RGB_BLUE": "block input text - The amount of blue (from 0 to 100) to use when [https://github.com/google/blockly/wiki/Colour#creating-a-colour-from-red-green-and-blue-components https://github.com/google/blockly/wiki/Colour#creating-a-colour-from-red-green-and-blue-components].\n{{Identical|Blue}}", "COLOUR_RGB_TOOLTIP": "tooltip - See [https://github.com/google/blockly/wiki/Colour#creating-a-colour-from-red-green-and-blue-components https://github.com/google/blockly/wiki/Colour#creating-a-colour-from-red-green-and-blue-components].", - "COLOUR_BLEND_HELPURL": "{{Ignored}} url - A useful link that displays blending of two colours.", + "COLOUR_BLEND_HELPURL": "{{Optional}} url - A useful link that displays blending of two colours.", "COLOUR_BLEND_TITLE": "block text - A verb for blending two shades of paint.", "COLOUR_BLEND_COLOUR1": "block input text - The first of two colours to [https://github.com/google/blockly/wiki/Colour#blending-colours blend].", "COLOUR_BLEND_COLOUR2": "block input text - The second of two colours to [https://github.com/google/blockly/wiki/Colour#blending-colours blend].", @@ -188,7 +189,7 @@ "MATH_ONLIST_TOOLTIP_AVERAGE": "tooltip - See [https://en.wikipedia.org/wiki/Arithmetic_mean https://en.wikipedia.org/wiki/Arithmetic_mean] for more informatin.", "MATH_ONLIST_OPERATOR_MEDIAN": "dropdown - This finds the [https://en.wikipedia.org/wiki/Median median] of the numeric values in a list. For example, the median of the list {1, 2, 7, 12, 13} is 7.", "MATH_ONLIST_TOOLTIP_MEDIAN": "tooltip - See [https://en.wikipedia.org/wiki/Median median https://en.wikipedia.org/wiki/Median median] for more information.", - "MATH_ONLIST_OPERATOR_MODE": "dropdown - This finds the most common numbers ([https://en.wikipedia.org/wiki/Mode_(statistics) modes]) in a list. For example, the modes of the list {1, 3, 9, 3, 9} are {3, 9}.", + "MATH_ONLIST_OPERATOR_MODE": "dropdown - This finds the most common numbers ([https://en.wikipedia.org/wiki/Mode_(statistics) modes]) in a list. For example, the modes of the list {1, 3, 9, 3, 9} are {3, 9}.", "MATH_ONLIST_TOOLTIP_MODE": "tooltip - See [https://en.wikipedia.org/wiki/Mode_(statistics) https://en.wikipedia.org/wiki/Mode_(statistics)] for more information.", "MATH_ONLIST_OPERATOR_STD_DEV": "dropdown - This finds the [https://en.wikipedia.org/wiki/Standard_deviation standard deviation] of the numeric values in a list.", "MATH_ONLIST_TOOLTIP_STD_DEV": "tooltip - See [https://en.wikipedia.org/wiki/Standard_deviation https://en.wikipedia.org/wiki/Standard_deviation] for more information.", @@ -238,7 +239,7 @@ "TEXT_CHARAT_FIRST": "block text - Indicates that the first letter of the following piece of text should be retrieved. See [https://github.com/google/blockly/wiki/Text#extracting-a-single-character https://github.com/google/blockly/wiki/Text#extracting-a-single-character]. [[File:Blockly-text-get.png]]", "TEXT_CHARAT_LAST": "block text - Indicates that the last letter (or number, punctuation mark, etc.) of the following piece of text should be retrieved. See [https://github.com/google/blockly/wiki/Text#extracting-a-single-character https://github.com/google/blockly/wiki/Text#extracting-a-single-character]. [[File:Blockly-text-get.png]]", "TEXT_CHARAT_RANDOM": "block text - Indicates that any letter (or number, punctuation mark, etc.) in the following piece of text should be randomly selected. See [https://github.com/google/blockly/wiki/Text#extracting-a-single-character https://github.com/google/blockly/wiki/Text#extracting-a-single-character]. [[File:Blockly-text-get.png]]", - "TEXT_CHARAT_TAIL": "{{Optional}}\nblock text - Text that goes after the rightmost block/dropdown when getting a single letter from a piece of text, as in [https://blockly-demo.appspot.com/static/apps/code/index.html#3m23km these blocks] or shown below. For most languages, this will be blank. [[File:Blockly-text-get.png]]", + "TEXT_CHARAT_TAIL": "{{Optional|Supply translation only if your language requires it. Most do not.}} block text - Text that goes after the rightmost block/dropdown when getting a single letter from a piece of text, as in [https://blockly-demo.appspot.com/static/apps/code/index.html#3m23km these blocks] or shown below. For most languages, this will be blank. [[File:Blockly-text-get.png]]", "TEXT_CHARAT_TOOLTIP": "tooltip - See [https://github.com/google/blockly/wiki/Text#extracting-a-single-character https://github.com/google/blockly/wiki/Text#extracting-a-single-character]. [[File:Blockly-text-get.png]]", "TEXT_GET_SUBSTRING_TOOLTIP": "See [https://github.com/google/blockly/wiki/Text#extracting-a-region-of-text https://github.com/google/blockly/wiki/Text#extracting-a-region-of-text].", "TEXT_GET_SUBSTRING_HELPURL": "{{Optional}} url - Information about extracting characters from text. Reminder: urls are the lowest priority translations. Feel free to skip.", @@ -249,7 +250,7 @@ "TEXT_GET_SUBSTRING_END_FROM_START": "dropdown - Indicates that the following number specifies the position (relative to the start position) of the end of the region of text that should be obtained from the preceding piece of text. See [https://github.com/google/blockly/wiki/Text#extracting-a-region-of-text https://github.com/google/blockly/wiki/Text#extracting-a-region-of-text]. [[File:Blockly-get-substring.png]]", "TEXT_GET_SUBSTRING_END_FROM_END": "dropdown - Indicates that the following number specifies the position (relative to the end position) of the end of the region of text that should be obtained from the preceding piece of text. See [https://github.com/google/blockly/wiki/Text#extracting-a-region-of-text https://github.com/google/blockly/wiki/Text#extracting-a-region-of-text]. [[File:Blockly-get-substring.png]]", "TEXT_GET_SUBSTRING_END_LAST": "block text - Indicates that a region ending with the last letter of the preceding piece of text should be extracted. See [https://github.com/google/blockly/wiki/Text#extracting-a-region-of-text https://github.com/google/blockly/wiki/Text#extracting-a-region-of-text]. [[File:Blockly-get-substring.png]]", - "TEXT_GET_SUBSTRING_TAIL": "{{Optional}}\nblock text - Text that should go after the rightmost block/dropdown when [https://github.com/google/blockly/wiki/Text#extracting-a-region-of-text extracting a region of text]. In most languages, this will be the empty string. [[File:Blockly-get-substring.png]]", + "TEXT_GET_SUBSTRING_TAIL": "{{Optional|Supply translation only if your language requires it. Most do not.}}\nblock text - Text that should go after the rightmost block/dropdown when [https://github.com/google/blockly/wiki/Text#extracting-a-region-of-text extracting a region of text]. In most languages, this will be the empty string. [[File:Blockly-get-substring.png]]", "TEXT_CHANGECASE_HELPURL": "{{Optional}} url - Information about the case of letters (upper-case and lower-case).", "TEXT_CHANGECASE_TOOLTIP": "tooltip - Describes a block to adjust the case of letters. For more information on this block, see [https://github.com/google/blockly/wiki/Text#adjusting-text-case https://github.com/google/blockly/wiki/Text#adjusting-text-case].", "TEXT_CHANGECASE_OPERATOR_UPPERCASE": "block text - Indicates that all of the letters in the following piece of text should be capitalized. If your language does not use case, you may indicate that this is not applicable to your language. For more information on this block, see [https://github.com/google/blockly/wiki/Text#adjusting-text-case https://github.com/google/blockly/wiki/Text#adjusting-text-case].", @@ -308,7 +309,7 @@ "LISTS_GET_INDEX_FIRST": "dropdown - Indicates that the '''first''' item should be [https://github.com/google/blockly/wiki/Lists#getting-a-single-item accessed in a list]. [[File:Blockly-list-get-item.png]]", "LISTS_GET_INDEX_LAST": "dropdown - Indicates that the '''last''' item should be [https://github.com/google/blockly/wiki/Lists#getting-a-single-item accessed in a list]. [[File:Blockly-list-get-item.png]]", "LISTS_GET_INDEX_RANDOM": "dropdown - Indicates that a '''random''' item should be [https://github.com/google/blockly/wiki/Lists#getting-a-single-item accessed in a list]. [[File:Blockly-list-get-item.png]]", - "LISTS_GET_INDEX_TAIL": "{{Optional}}\nblock text - Text that should go after the rightmost block/dropdown when [https://github.com/google/blockly/wiki/Lists#getting-a-single-item accessing an item from a list]. In most languages, this will be the empty string. [[File:Blockly-list-get-item.png]]", + "LISTS_GET_INDEX_TAIL": "{{Optional|Supply translation only if your language requires it. Most do not.}}\n\nblock text - Text that should go after the rightmost block/dropdown when [https://github.com/google/blockly/wiki/Lists#getting-a-single-item accessing an item from a list]. In most languages, this will be the empty string. [[File:Blockly-list-get-item.png]]", "LISTS_INDEX_FROM_START_TOOLTIP": "tooltip - Indicates the ordinal number that the first item in a list is referenced by. %1 will be replaced by either '#0' or '#1' depending on the indexing mode.", "LISTS_INDEX_FROM_END_TOOLTIP": "tooltip - Indicates the ordinal number that the last item in a list is referenced by. %1 will be replaced by either '#0' or '#1' depending on the indexing mode.", "LISTS_GET_INDEX_TOOLTIP_GET_FROM": "tooltip - See [https://github.com/google/blockly/wiki/Lists#getting-a-single-item https://github.com/google/blockly/wiki/Lists#getting-a-single-item] for more information.", diff --git a/msg/json/ro.json b/msg/json/ro.json index 456337c03..fa4f9ae06 100644 --- a/msg/json/ro.json +++ b/msg/json/ro.json @@ -41,7 +41,7 @@ "NEW_COLOUR_VARIABLE": "Crează o variabilă culoare", "NEW_VARIABLE_TYPE_TITLE": "Tip nou de variabilă", "NEW_VARIABLE_TITLE": "Noul nume de variabilă:", - "VARIABLE_ALREADY_EXISTS": "O variabilă cu numele '%1' există deja.", + "VARIABLE_ALREADY_EXISTS": "O variabilă cu numele '%1' există deja.", "VARIABLE_ALREADY_EXISTS_FOR_ANOTHER_TYPE": "o variabilă numită '%1' există deja pentru alt tip: '%2'.", "DELETE_VARIABLE_CONFIRMATION": "Șterge %1 utilizările variabilei '%2'?", "CANNOT_DELETE_VARIABLE_PROCEDURE": "Nu se poate șterge variabila '%1' deoarece face parte din definiția funcției '%2'", diff --git a/msg/json/ru.json b/msg/json/ru.json index 1bd088c35..bf9f36ff1 100644 --- a/msg/json/ru.json +++ b/msg/json/ru.json @@ -84,7 +84,7 @@ "CONTROLS_FOR_TOOLTIP": "Присваивает переменной '%1' значения от начального до конечного с заданным шагом и выполняет указанные команды.", "CONTROLS_FOR_TITLE": "цикл по %1 от %2 до %3 с шагом %4", "CONTROLS_FOREACH_TITLE": "для каждого элемента %1 в списке %2", - "CONTROLS_FOREACH_TOOLTIP": "Для каждого элемента в списке, присваивает переменной '%1' значение элемента и выполняет указанные команды.", + "CONTROLS_FOREACH_TOOLTIP": "Для каждого элемента в списке, присваивает переменной '%1' значение элемента и выполняет указанные команды.", "CONTROLS_FLOW_STATEMENTS_OPERATOR_BREAK": "выйти из цикла", "CONTROLS_FLOW_STATEMENTS_OPERATOR_CONTINUE": "перейти к следующему шагу цикла", "CONTROLS_FLOW_STATEMENTS_TOOLTIP_BREAK": "Прерывает этот цикл.", @@ -104,9 +104,9 @@ "LOGIC_COMPARE_TOOLTIP_EQ": "Возвращает положительное значение, если вводы равны.", "LOGIC_COMPARE_TOOLTIP_NEQ": "Возвращает положительное значение, если вводы не равны.", "LOGIC_COMPARE_TOOLTIP_LT": "Возвращает положительное значение, если первый ввод меньше второго.", - "LOGIC_COMPARE_TOOLTIP_LTE": "Возвращает значение истина, если первая вставка меньше или равна второй.", + "LOGIC_COMPARE_TOOLTIP_LTE": "Возвращает значение истина, если первая вставка меньше или равна второй.", "LOGIC_COMPARE_TOOLTIP_GT": "Возвращает значение истина, если первая вставка больше второй.", - "LOGIC_COMPARE_TOOLTIP_GTE": "Возвращает значение истина, если первая вставка больше или равна второй.", + "LOGIC_COMPARE_TOOLTIP_GTE": "Возвращает значение истина, если первая вставка больше или равна второй.", "LOGIC_OPERATION_TOOLTIP_AND": "Возвращает значение истина, если обе вставки истинны.", "LOGIC_OPERATION_AND": "и", "LOGIC_OPERATION_TOOLTIP_OR": "Возвращает значение истина, если хотя бы одна из вставок истинна.", @@ -155,7 +155,7 @@ "MATH_TRIG_TOOLTIP_ACOS": "Возвращает арккосинус (в градусах).", "MATH_TRIG_TOOLTIP_ATAN": "Возвращает арктангенс (в градусах)", "MATH_CONSTANT_HELPURL": "https://ru.wikipedia.org/wiki/Математическая_константа", - "MATH_CONSTANT_TOOLTIP": "Возвращает одну из распространённых констант: π (3.141...), e (2.718...), φ (1.618...), sqrt(2) (1.414...), sqrt(½) (0.707...) или ∞ (бесконечность).", + "MATH_CONSTANT_TOOLTIP": "Возвращает одну из распространённых констант: π (3.141...), e (2.718...), φ (1.618...), sqrt(2) (1.414...), sqrt(½) (0.707...) или ∞ (бесконечность).", "MATH_IS_EVEN": "чётное", "MATH_IS_ODD": "нечётное", "MATH_IS_PRIME": "простое", @@ -214,7 +214,7 @@ "TEXT_LENGTH_TOOLTIP": "Возвращает число символов (включая пробелы) в заданном тексте.", "TEXT_ISEMPTY_TITLE": "%1 пуст", "TEXT_ISEMPTY_TOOLTIP": "Возвращает значение истина, если предоставленный текст пуст.", - "TEXT_INDEXOF_TOOLTIP": "Возвращает номер позиции первого/последнего вхождения первого текста во втором. Возвращает %1, если текст не найден.", + "TEXT_INDEXOF_TOOLTIP": "Возвращает номер позиции первого/последнего вхождения первого текста во втором. Возвращает %1, если текст не найден.", "TEXT_INDEXOF_TITLE": "в тексте %1 %2 %3", "TEXT_INDEXOF_OPERATOR_FIRST": "найти первое вхождение текста", "TEXT_INDEXOF_OPERATOR_LAST": "найти последнее вхождение текста", @@ -344,7 +344,7 @@ "PROCEDURES_CALLNORETURN_HELPURL": "https://ru.wikipedia.org/wiki/Подпрограмма", "PROCEDURES_CALLNORETURN_TOOLTIP": "Исполняет определённую пользователем процедуру '%1'.", "PROCEDURES_CALLRETURN_HELPURL": "https://ru.wikipedia.org/wiki/Подпрограмма", - "PROCEDURES_CALLRETURN_TOOLTIP": "Исполняет определённую пользователем процедуру '%1' и возвращает вычисленное значение.", + "PROCEDURES_CALLRETURN_TOOLTIP": "Исполняет определённую пользователем процедуру '%1' и возвращает вычисленное значение.", "PROCEDURES_MUTATORCONTAINER_TITLE": "параметры", "PROCEDURES_MUTATORCONTAINER_TOOLTIP": "Добавить, удалить или изменить порядок входных параметров для этой функции.", "PROCEDURES_MUTATORARG_TITLE": "имя параметра:", diff --git a/msg/json/sc.json b/msg/json/sc.json index 6e44bc658..397746508 100644 --- a/msg/json/sc.json +++ b/msg/json/sc.json @@ -251,7 +251,7 @@ "LISTS_GET_SUBLIST_TOOLTIP": "Fait una copia de sa parti inditada de sa lista.", "LISTS_SPLIT_LIST_FROM_TEXT": "fai una lista de unu testu", "LISTS_SPLIT_TEXT_FROM_LIST": "fai unu testu de una lista", - "LISTS_SPLIT_WITH_DELIMITER": "cun separadori", + "LISTS_SPLIT_WITH_DELIMITER": "cun separadori", "LISTS_SPLIT_TOOLTIP_SPLIT": "Dividi su testu in un'elencu de testus, firmendi po dònnia separadori.", "LISTS_SPLIT_TOOLTIP_JOIN": "Auni una lista de testus in d-unu sceti, ponendi separadoris.", "VARIABLES_GET_TOOLTIP": "Torrat su valori de custa variabili.", diff --git a/msg/json/shn.json b/msg/json/shn.json index fcea65b88..c6a25ff14 100644 --- a/msg/json/shn.json +++ b/msg/json/shn.json @@ -57,7 +57,7 @@ "CONTROLS_FLOW_STATEMENTS_WARNING": "ၾၢင်ႉ: ပလွၵ်ႉဢၼ်ၼႆႉ ၵူၺ်းၸႂ်ႉလူၺ်ႈတႃႇ ၶွပ်ႇမူၼ်းၵူၺ်း", "CONTROLS_IF_TOOLTIP_1": "ပေႃးဝႃႈ ၵႃႈၶၼ် (ၼမ်ႉၵတ်ႉ) မၢၼ်ႇမႅၼ်ႈယဝ်ႉၸိုင် ႁဵတ်းၶေႃႈၵဵပ်းထွၼ်ၵမ်ႈၽွင်ႈ", "CONTROLS_IF_TOOLTIP_2": "သင်ဝႃႈ ၵႃႈၶၼ်(ၼမ်ႉၵတ်ႉ)မၢၼ်ႇမႅၼ်ႈၸိုင် ႁဵတ်းပလွၵ်ႉဢွၼ်တၢင်းသုတ်း တီႈၼႂ်းၶေႃႈၵဵပ်းထွၼ်တ။ လိူဝ်သေၼၼ်ႉ ႁဵတ်းပႅတ်ႈ ပလွၵ်ႉသွင် တီႈၼႂ်းၶေႃႈၵဵပ်းထွၼ်", - "CONTROLS_IF_TOOLTIP_3": "သင်ဝႃႈ ၵႃႈၶၼ်(ၼမ်ႉၵတ်ႉ)မၢႉၼိုင်ႈ မၢၼ်ႇမႅၼ်ႈၸိုင် ႁဵတ်းပလွၵ်ႉဢွၼ်တၢင်းသုတ်း တီႈၼႂ်းၶေႃႈၵဵပ်းထွၼ်တ။ သင်ဝႃႈ ၵႃႈၶၼ်(ၼမ်ႉၵတ်ႉ)မၢႆသွင်မၢၼ်ႇမႅၼ်ႈၸိုင် ႁဵတ်းပႅတ်ႈ ပလွၵ်ႉသွင် တီႈၼႂ်းၶေႃႈၵဵပ်းထွၼ်", + "CONTROLS_IF_TOOLTIP_3": "သင်ဝႃႈ ၵႃႈၶၼ်(ၼမ်ႉၵတ်ႉ)မၢႉၼိုင်ႈ မၢၼ်ႇမႅၼ်ႈၸိုင် ႁဵတ်းပလွၵ်ႉဢွၼ်တၢင်းသုတ်း တီႈၼႂ်းၶေႃႈၵဵပ်းထွၼ်တ။ သင်ဝႃႈ ၵႃႈၶၼ်(ၼမ်ႉၵတ်ႉ)မၢႆသွင်မၢၼ်ႇမႅၼ်ႈၸိုင် ႁဵတ်းပႅတ်ႈ ပလွၵ်ႉသွင် တီႈၼႂ်းၶေႃႈၵဵပ်းထွၼ်", "CONTROLS_IF_TOOLTIP_4": "သင်ဝႃႈ ၵႃႈၶၼ်(ၼမ်ႉၵတ်ႉ)မၢႆၼိုင်ႈ မၢၼ်ႇမႅၼ်ႈၸိုင် ႁဵတ်းပလွၵ်ႉဢွၼ်တၢင်းသုတ်း တီႈၼႂ်းၶေႃႈၵဵပ်းထွၼ်တ။ လိူဝ်သေၼၼ်ႉ, သင်ဝႃႈ ၵႃႈၶၼ် (ၼမ်ႉၵတ်ႉ) မၢႆသွင် မၢၼ်ႇမႅၼ်ႈၸိုင် ႁဵတ်းပႅတ်ႈ ပလွၵ်ႉသွင် တီႈၼႂ်းၶေႃႈၵဵပ်းထွၼ်တ။ သင်ဝႃႈ ၵႃႈၶၼ်(ၼမ်ႉၵတ်ႉ) ဢမ်ႇမီးလွင်ႈမၢၼ်ႇမႅၼ်ႈ သင်ၸိုင် ႁဵတ်းပႅတ်ႈပလွၵ်ႉ ၵမ်းလိုမ်း တီႈၼႂ်းၶေႃႈၵဵပ်းထွၼ်တ။", "CONTROLS_IF_MSG_IF": "သင်ဝႃႈ", "CONTROLS_IF_MSG_ELSEIF": "သင်ဝႃႈ လိူဝ်သေၼၼ်ႉ", diff --git a/msg/json/skr-arab.json b/msg/json/skr-arab.json index 3ca0fa350..ed1d42c06 100644 --- a/msg/json/skr-arab.json +++ b/msg/json/skr-arab.json @@ -10,7 +10,7 @@ "DUPLICATE_BLOCK": "ڈپلیکیٹ", "ADD_COMMENT": "تبصرہ کرو", "REMOVE_COMMENT": "رائے مٹاؤ", - "DUPLICATE_COMMENT": " نقل تبصرہ", + "DUPLICATE_COMMENT": "نقل تبصرہ", "EXTERNAL_INPUTS": "باہرلے انپٹ", "INLINE_INPUTS": "ان لائن ان پٹ", "DELETE_BLOCK": "بلاک مٹاؤ", diff --git a/msg/json/sq.json b/msg/json/sq.json index 31a5c2cb6..25a918147 100644 --- a/msg/json/sq.json +++ b/msg/json/sq.json @@ -43,7 +43,7 @@ "DELETE_VARIABLE_CONFIRMATION": "Fshi përdorimin %1 të variablës '%2'?", "CANNOT_DELETE_VARIABLE_PROCEDURE": "Nuk mund të fshihet variabla '%1' sepse është pjesë e definicionit të funksionit '%2'", "DELETE_VARIABLE": "Fshi variablën '%1'", - "COLOUR_PICKER_HELPURL": "http://en.wikipedia.org/wiki/Color", + "COLOUR_PICKER_HELPURL": "https://en.wikipedia.org/wiki/Color", "COLOUR_PICKER_TOOLTIP": "Zgjidh nje ngjyre nga nje game ngjyrash.", "COLOUR_RANDOM_TITLE": "ngjyre e rastesishme", "COLOUR_RANDOM_TOOLTIP": "Zgjidhni një ngjyrë në mënyrë të rastësishme.", @@ -57,7 +57,7 @@ "COLOUR_BLEND_COLOUR2": "Ngjyra 2", "COLOUR_BLEND_RATIO": "Perpjesetim", "COLOUR_BLEND_TOOLTIP": "Perzien dy ngjyra së bashku me një raport të dhënë (0.0 - 1.0).", - "CONTROLS_REPEAT_HELPURL": "http://en.wikipedia.org/wiki/For_loop", + "CONTROLS_REPEAT_HELPURL": "https://en.wikipedia.org/wiki/For_loop", "CONTROLS_REPEAT_TITLE": "përsërit %1 herë", "CONTROLS_REPEAT_INPUT_DO": "ekzekuto", "CONTROLS_REPEAT_TOOLTIP": "Ekzekuto disa fjali disa herë.", @@ -84,7 +84,7 @@ "CONTROLS_IF_IF_TOOLTIP": "Shto, fshij, ose rirregullo sektoret për ta rikonfiguruar këte bllok nëse.", "CONTROLS_IF_ELSEIF_TOOLTIP": "\"Vendos\" \"kushtein\"tek \"pjesa\" \"if\"", "CONTROLS_IF_ELSE_TOOLTIP": "Shto një përfundues, që i mbërrin të gjitha kushtet në bllokun nëse.", - "LOGIC_COMPARE_HELPURL": "http://en.wikipedia.org/wiki/Inequality_(mathematics)", + "LOGIC_COMPARE_HELPURL": "https://en.wikipedia.org/wiki/Inequality_(mathematics)", "LOGIC_COMPARE_TOOLTIP_EQ": "Ktheje të saktë nëse të dy hyrjet janë të barabarta me njëra-tjetrën.", "LOGIC_COMPARE_TOOLTIP_NEQ": "Ktheje të saktë nëse të dy hyrjet nuk janë të barabarta me njëra-tjetrën.", "LOGIC_COMPARE_TOOLTIP_LT": "Ktheje të saktë nëse hyrja e parë është më e vogël se hyrja e dytë.", @@ -100,15 +100,15 @@ "LOGIC_BOOLEAN_TRUE": "e saktë", "LOGIC_BOOLEAN_FALSE": "e pasaktë", "LOGIC_BOOLEAN_TOOLTIP": "Kthehet ose të saktë ose të pasaktë.", - "LOGIC_NULL_HELPURL": "http://en.wikipedia.org/wiki/Nullable_type", + "LOGIC_NULL_HELPURL": "https://en.wikipedia.org/wiki/Nullable_type", "LOGIC_NULL": "pavlerë", "LOGIC_NULL_TOOLTIP": "Kthehet e pavlerë.", - "LOGIC_TERNARY_HELPURL": "http://en.wikipedia.org/wiki/%3F:", + "LOGIC_TERNARY_HELPURL": "https://en.wikipedia.org/wiki/%3F:", "LOGIC_TERNARY_CONDITION": "test", "LOGIC_TERNARY_IF_TRUE": "nëse e saktë", "LOGIC_TERNARY_IF_FALSE": "nëse e pasaktë", "LOGIC_TERNARY_TOOLTIP": "Kontrollo kushtin në 'test'. Nëse kushti është i saktë, kthen vlerën 'nëse e saktë'; përndryshe kthen vlerën 'nëse e pasaktë'.", - "MATH_NUMBER_HELPURL": "http://en.wikipedia.org/wiki/Number", + "MATH_NUMBER_HELPURL": "https://en.wikipedia.org/wiki/Number", "MATH_NUMBER_TOOLTIP": "Një numër.", "MATH_MULTIPLICATION_SYMBOL": "x", "MATH_TRIG_SIN": "sin", @@ -117,13 +117,13 @@ "MATH_TRIG_ASIN": "asinus", "MATH_TRIG_ACOS": "acosinus", "MATH_TRIG_ATAN": "atangjentë", - "MATH_ARITHMETIC_HELPURL": "http://sq.wikipedia.org/wiki/Aritmetika", + "MATH_ARITHMETIC_HELPURL": "https://sq.wikipedia.org/wiki/Aritmetika", "MATH_ARITHMETIC_TOOLTIP_ADD": "Kthen shumën e dy numrave.", "MATH_ARITHMETIC_TOOLTIP_MINUS": "Kthen ndryshimin e dy numrave.", "MATH_ARITHMETIC_TOOLTIP_MULTIPLY": "Kthen produktin e dy numrave.", "MATH_ARITHMETIC_TOOLTIP_DIVIDE": "Kthen herësin e dy numrave.", "MATH_ARITHMETIC_TOOLTIP_POWER": "Kthen numrin e parë të ngritur në fuqinë e numrit të dytë.", - "MATH_SINGLE_HELPURL": "http://en.wikipedia.org/wiki/Square_root", + "MATH_SINGLE_HELPURL": "https://en.wikipedia.org/wiki/Square_root", "MATH_SINGLE_OP_ROOT": "rrënja katrore", "MATH_SINGLE_TOOLTIP_ROOT": "Kthen rrënjën katrore të një numri.", "MATH_SINGLE_OP_ABSOLUTE": "absolut", @@ -133,14 +133,14 @@ "MATH_SINGLE_TOOLTIP_LOG10": "Kthen 10 logaritmet bazë të një numri.", "MATH_SINGLE_TOOLTIP_EXP": "Kthen e në fuqinë e një numri.", "MATH_SINGLE_TOOLTIP_POW10": "Kthen 10 në fuqinë e një numri.", - "MATH_TRIG_HELPURL": "http://en.wikipedia.org/wiki/Trigonometric_functions", + "MATH_TRIG_HELPURL": "https://en.wikipedia.org/wiki/Trigonometric_functions", "MATH_TRIG_TOOLTIP_SIN": "Kthe kosinusin e nje kendi (jo ne radiant).", "MATH_TRIG_TOOLTIP_COS": "Kthe kosinusin e nje grade (jo ne radiant).", "MATH_TRIG_TOOLTIP_TAN": "Kthe tangentin e nje kendi (jo radiant).", "MATH_TRIG_TOOLTIP_ASIN": "Rikthe sin-1 e nje numeri.", "MATH_TRIG_TOOLTIP_ACOS": "Rikthe cos-1 e nje numeri.", "MATH_TRIG_TOOLTIP_ATAN": "Kthe tg-1 e nje numeri.", - "MATH_CONSTANT_HELPURL": "http://en.wikipedia.org/wiki/Mathematical_constant", + "MATH_CONSTANT_HELPURL": "https://en.wikipedia.org/wiki/Mathematical_constant", "MATH_CONSTANT_TOOLTIP": "Kthen një nga konstantet e përbashkëta: : π (3.141…), e (2.718…), φ (1.618…), sqrt(2) (1.414…), sqrt(½) (0.707…), or ∞ (infiniti).", "MATH_IS_EVEN": "është çift", "MATH_IS_ODD": "është tek", @@ -150,10 +150,10 @@ "MATH_IS_NEGATIVE": "është negativ", "MATH_IS_DIVISIBLE_BY": "është i pjestueshme me", "MATH_IS_TOOLTIP": "Kontrollo nëse një numër është çift, tek, prim, i plotë, pozitiv, negativ, ose nëse është i pjestueshëm me një numër të caktuar. Kthehet e saktë ose e pasaktë.", - "MATH_CHANGE_HELPURL": "http://en.wikipedia.org/wiki/Programming_idiom#Incrementing_a_counter", + "MATH_CHANGE_HELPURL": "https://en.wikipedia.org/wiki/Programming_idiom#Incrementing_a_counter", "MATH_CHANGE_TITLE": "ndrysho %1 nga %2", "MATH_CHANGE_TOOLTIP": "Shto një numër në ndryshoren '%1'.", - "MATH_ROUND_HELPURL": "http://en.wikipedia.org/wiki/Rounding", + "MATH_ROUND_HELPURL": "https://en.wikipedia.org/wiki/Rounding", "MATH_ROUND_TOOLTIP": "Rrumbullakësimi i numrit të lartë ose të ulët.", "MATH_ROUND_OPERATOR_ROUND": "rrumbullakësimi", "MATH_ROUND_OPERATOR_ROUNDUP": "rrumbullakësimi i lartë", @@ -174,20 +174,20 @@ "MATH_ONLIST_TOOLTIP_STD_DEV": "Kthe devijimin standard të listës.", "MATH_ONLIST_OPERATOR_RANDOM": "send i rastësishëm i listës", "MATH_ONLIST_TOOLTIP_RANDOM": "Kthe një element të rastësishëm nga lista.", - "MATH_MODULO_HELPURL": "http://en.wikipedia.org/wiki/Modulo_operation", + "MATH_MODULO_HELPURL": "https://en.wikipedia.org/wiki/Modulo_operation", "MATH_MODULO_TITLE": "mbetësi i %1 ÷ %2", "MATH_MODULO_TOOLTIP": "Kthen mbetësin nga pjestimi i dy numrave.", "MATH_CONSTRAIN_TITLE": "detyro %1 e ulët %2 e lartë %3", "MATH_CONSTRAIN_TOOLTIP": "Vëni një numër që të jetë në mes të kufive të specifikuara(përfshirëse).", - "MATH_RANDOM_INT_HELPURL": "http://en.wikipedia.org/wiki/Random_number_generation", + "MATH_RANDOM_INT_HELPURL": "https://en.wikipedia.org/wiki/Random_number_generation", "MATH_RANDOM_INT_TITLE": "numër i plotë i rastësishëm nga %1 deri në %2", "MATH_RANDOM_INT_TOOLTIP": "Kthe një numër të plotë të rastësishëm të dy kufijve të specifikuar, të përfshirë.", - "MATH_RANDOM_FLOAT_HELPURL": "http://en.wikipedia.org/wiki/Random_number_generation", + "MATH_RANDOM_FLOAT_HELPURL": "https://en.wikipedia.org/wiki/Random_number_generation", "MATH_RANDOM_FLOAT_TITLE_RANDOM": "fraksioni i rastësishëm", "MATH_RANDOM_FLOAT_TOOLTIP": "Kthe fraksionin e rastësishëm në mes të 0.0 (përfshirëse) dhe 1.0 (jopërfshirëse).", "MATH_ATAN2_TITLE": "atan2 of X:%1 Y:%2", "MATH_ATAN2_TOOLTIP": "Ktheni arkangjentin e pikës (X, Y) në gradë nga -180 në 180.", - "TEXT_TEXT_HELPURL": "http://en.wikipedia.org/wiki/String_(computer_science)", + "TEXT_TEXT_HELPURL": "https://en.wikipedia.org/wiki/String_(computer_science)", "TEXT_TEXT_TOOLTIP": "Nje shkronje, fjale, ose rresht teksti.", "TEXT_JOIN_TITLE_CREATEWITH": "krijo tekst me", "TEXT_JOIN_TOOLTIP": "Krijo nje pjese te tekstit duke bashkuar se bashku disa sende", diff --git a/msg/json/sr-latn.json b/msg/json/sr-latn.json index c38a6ca60..3d5b52119 100644 --- a/msg/json/sr-latn.json +++ b/msg/json/sr-latn.json @@ -75,7 +75,7 @@ "CONTROLS_IF_MSG_ELSE": "inače", "CONTROLS_IF_IF_TOOLTIP": "Dodaj, ukloni, ili preuredi delove kako bih rekonfigurisali ovaj if blok.", "CONTROLS_IF_ELSEIF_TOOLTIP": "Dodajte uslov bloku „ako“.", - "CONTROLS_IF_ELSE_TOOLTIP": "Dodaj konačni, catch-all (uhvati sve) uslove if bloka.", + "CONTROLS_IF_ELSE_TOOLTIP": "Dodaj konačni, catch-all (uhvati sve) uslove if bloka.", "LOGIC_COMPARE_HELPURL": "https://sr.wikipedia.org/wiki/Nejednakost", "LOGIC_COMPARE_TOOLTIP_EQ": "Vraća vrednost „tačno“ ako su oba ulaza jednaka.", "LOGIC_COMPARE_TOOLTIP_NEQ": "Vraća vrednost „tačno“ ako su oba ulaza nejednaka.", @@ -224,7 +224,7 @@ "TEXT_REVERSE_MESSAGE0": "obrnuto %1", "TEXT_REVERSE_TOOLTIP": "Obrće redosled karaktera u tekstu.", "LISTS_CREATE_EMPTY_TITLE": "napravi prazan spisak", - "LISTS_CREATE_EMPTY_TOOLTIP": "vraća listu, dužine 0, ne sadržavajući evidenciju podataka", + "LISTS_CREATE_EMPTY_TOOLTIP": "vraća listu, dužine 0, ne sadržavajući evidenciju podataka", "LISTS_CREATE_WITH_TOOLTIP": "Kreiraj listu sa bilo kojim brojem stavki.", "LISTS_CREATE_WITH_INPUT_WITH": "napravi spisak sa", "LISTS_CREATE_WITH_CONTAINER_TITLE_ADD": "spisak", diff --git a/msg/json/sr.json b/msg/json/sr.json index 088bfa8f1..4741be748 100644 --- a/msg/json/sr.json +++ b/msg/json/sr.json @@ -90,7 +90,7 @@ "CONTROLS_IF_MSG_ELSE": "иначе", "CONTROLS_IF_IF_TOOLTIP": "Додај, уклони, или преуреди делове како бих реконфигурисали овај иф блок.", "CONTROLS_IF_ELSEIF_TOOLTIP": "Додајте услов блоку „ако“.", - "CONTROLS_IF_ELSE_TOOLTIP": "Додај коначни, catch-all (ухвати све) услове иф блока.", + "CONTROLS_IF_ELSE_TOOLTIP": "Додај коначни, catch-all (ухвати све) услове иф блока.", "LOGIC_COMPARE_HELPURL": "https://sr.wikipedia.org/wiki/Неједнакост", "LOGIC_COMPARE_TOOLTIP_EQ": "Враћа вредност „тачно“ ако су оба улаза једнака.", "LOGIC_COMPARE_TOOLTIP_NEQ": "Враћа вредност „тачно“ ако су оба уноса неједнака.", diff --git a/msg/json/synonyms.json b/msg/json/synonyms.json index 944aa9bda..d7a05c3ab 100644 --- a/msg/json/synonyms.json +++ b/msg/json/synonyms.json @@ -1 +1 @@ -{"PROCEDURES_DEFRETURN_TITLE": "PROCEDURES_DEFNORETURN_TITLE", "CONTROLS_IF_IF_TITLE_IF": "CONTROLS_IF_MSG_IF", "CONTROLS_WHILEUNTIL_INPUT_DO": "CONTROLS_REPEAT_INPUT_DO", "CONTROLS_IF_MSG_THEN": "CONTROLS_REPEAT_INPUT_DO", "LISTS_GET_SUBLIST_INPUT_IN_LIST": "LISTS_INLIST", "CONTROLS_IF_ELSE_TITLE_ELSE": "CONTROLS_IF_MSG_ELSE", "PROCEDURES_DEFRETURN_PROCEDURE": "PROCEDURES_DEFNORETURN_PROCEDURE", "TEXT_CREATE_JOIN_ITEM_TITLE_ITEM": "VARIABLES_DEFAULT_NAME", "LISTS_GET_INDEX_INPUT_IN_LIST": "LISTS_INLIST", "PROCEDURES_DEFRETURN_COMMENT": "PROCEDURES_DEFNORETURN_COMMENT", "CONTROLS_IF_ELSEIF_TITLE_ELSEIF": "CONTROLS_IF_MSG_ELSEIF", "PROCEDURES_DEFRETURN_DO": "PROCEDURES_DEFNORETURN_DO", "CONTROLS_FOR_INPUT_DO": "CONTROLS_REPEAT_INPUT_DO", "LISTS_GET_INDEX_HELPURL": "LISTS_INDEX_OF_HELPURL", "LISTS_INDEX_OF_INPUT_IN_LIST": "LISTS_INLIST", "CONTROLS_FOREACH_INPUT_DO": "CONTROLS_REPEAT_INPUT_DO", "LISTS_CREATE_WITH_ITEM_TITLE": "VARIABLES_DEFAULT_NAME", "TEXT_APPEND_VARIABLE": "VARIABLES_DEFAULT_NAME", "MATH_CHANGE_TITLE_ITEM": "VARIABLES_DEFAULT_NAME", "LISTS_SET_INDEX_INPUT_IN_LIST": "LISTS_INLIST"} \ No newline at end of file +{"CONTROLS_FOREACH_INPUT_DO": "CONTROLS_REPEAT_INPUT_DO", "CONTROLS_FOR_INPUT_DO": "CONTROLS_REPEAT_INPUT_DO", "CONTROLS_IF_ELSEIF_TITLE_ELSEIF": "CONTROLS_IF_MSG_ELSEIF", "CONTROLS_IF_ELSE_TITLE_ELSE": "CONTROLS_IF_MSG_ELSE", "CONTROLS_IF_IF_TITLE_IF": "CONTROLS_IF_MSG_IF", "CONTROLS_IF_MSG_THEN": "CONTROLS_REPEAT_INPUT_DO", "CONTROLS_WHILEUNTIL_INPUT_DO": "CONTROLS_REPEAT_INPUT_DO", "LISTS_CREATE_WITH_ITEM_TITLE": "VARIABLES_DEFAULT_NAME", "LISTS_GET_INDEX_HELPURL": "LISTS_INDEX_OF_HELPURL", "LISTS_GET_INDEX_INPUT_IN_LIST": "LISTS_INLIST", "LISTS_GET_SUBLIST_INPUT_IN_LIST": "LISTS_INLIST", "LISTS_INDEX_OF_INPUT_IN_LIST": "LISTS_INLIST", "LISTS_SET_INDEX_INPUT_IN_LIST": "LISTS_INLIST", "MATH_CHANGE_TITLE_ITEM": "VARIABLES_DEFAULT_NAME", "PROCEDURES_DEFRETURN_COMMENT": "PROCEDURES_DEFNORETURN_COMMENT", "PROCEDURES_DEFRETURN_DO": "PROCEDURES_DEFNORETURN_DO", "PROCEDURES_DEFRETURN_PROCEDURE": "PROCEDURES_DEFNORETURN_PROCEDURE", "PROCEDURES_DEFRETURN_TITLE": "PROCEDURES_DEFNORETURN_TITLE", "TEXT_APPEND_VARIABLE": "VARIABLES_DEFAULT_NAME", "TEXT_CREATE_JOIN_ITEM_TITLE_ITEM": "VARIABLES_DEFAULT_NAME"} \ No newline at end of file diff --git a/msg/json/ta.json b/msg/json/ta.json index 63e7705a8..9eb44de12 100644 --- a/msg/json/ta.json +++ b/msg/json/ta.json @@ -4,6 +4,7 @@ "Aswn", "ElangoRamanujam", "Ezhillang", + "Fahimrazick", "Karuthan", "Mahir78", "Thangamani-arun" @@ -23,7 +24,7 @@ "COLLAPSE_BLOCK": "உறுப்பை மரை", "COLLAPSE_ALL": "உறுப்புகளை மரை", "EXPAND_BLOCK": "உறுப்பை காட்டு", - "EXPAND_ALL": "உறுப்புகளை காட்டு", + "EXPAND_ALL": "உறுப்புகளை காட்டு", "DISABLE_BLOCK": "உறுப்பை இயங்காது செய்", "ENABLE_BLOCK": "உறுப்பை இயங்குமாரு செய்", "HELP": "உதவி", @@ -55,10 +56,10 @@ "CONTROLS_WHILEUNTIL_OPERATOR_UNTIL": "பலமுரை திரும்ப செய் (முடயேனில்)", "CONTROLS_WHILEUNTIL_TOOLTIP_WHILE": "மாறி உண்மை ஆக உள்ள வரை, கட்டளைகளை இயக்கு", "CONTROLS_WHILEUNTIL_TOOLTIP_UNTIL": "மாறி பொய் ஆக உள்ள வரை, கட்டளைகளை இயக்கு", - "CONTROLS_FOR_TOOLTIP": "முதல் எண்ணில் இருந்து கடை எண் வரை எடுத்துக்கொள்ள ஒரு மாறியை வைத்துக்கொள், குறித்த இடைவெளியை சேர்த்தவறே தொகுதிகளை செயலாக்கு.", + "CONTROLS_FOR_TOOLTIP": "முதல் எண்ணில் இருந்து கடை எண் வரை எடுத்துக்கொள்ள ஒரு மாறியை வைத்துக்கொள், குறித்த இடைவெளியை சேர்த்தவறே தொகுதிகளை செயலாக்கு.", "CONTROLS_FOR_TITLE": "மாறியை வைத்து எண்ண %1 %2 இல் இருந்து %3 வரை %4-இன் படியாக", "CONTROLS_FOREACH_TITLE": "உருப்படி ஒவ்வொன்றாக %1 பட்டியலில் உள்ள %2", - "CONTROLS_FOREACH_TOOLTIP": "பட்டியலில் உள்ள உருப்படியில் ஒவ்வொன்றாக, மாறியின் பொருள் '%1' ஆக வைக்க.", + "CONTROLS_FOREACH_TOOLTIP": "பட்டியலில் உள்ள உருப்படியில் ஒவ்வொன்றாக, மாறியின் பொருள் '%1' ஆக வைக்க.", "CONTROLS_FLOW_STATEMENTS_OPERATOR_BREAK": "மடக்கு கட்டளையை நிறுத்து.", "CONTROLS_FLOW_STATEMENTS_OPERATOR_CONTINUE": "மடக்கு கட்டளையின் அடுத்த இயக்கநிலைக்கு செல்", "CONTROLS_FLOW_STATEMENTS_TOOLTIP_BREAK": "மடக்கு கட்டளையின் இயக்கத்தில் இருந்து நிறுத்து.", @@ -94,7 +95,7 @@ "LOGIC_TERNARY_CONDITION": "சோதனை", "LOGIC_TERNARY_IF_TRUE": "மெய்யெனில்", "LOGIC_TERNARY_IF_FALSE": "பொய்யெனில்", - "LOGIC_TERNARY_TOOLTIP": "'test' உள்ள நிபந்தனையை சரிபார்க்கவும், நிபந்தனை மெய்யானால்,'if true'வை பின்கொடுக்கும் இல்லையெனில் 'if false'வை பின்கொடுக்கும்.", + "LOGIC_TERNARY_TOOLTIP": "'test' உள்ள நிபந்தனையை சரிபார்க்கவும், நிபந்தனை மெய்யானால்,'if true'வை பின்கொடுக்கும் இல்லையெனில் 'if false'வை பின்கொடுக்கும்.", "MATH_NUMBER_HELPURL": "https://ta.wikipedia.org/wiki/%E0%AE%8E%E0%AE%A3%E0%AF%8D", "MATH_NUMBER_TOOLTIP": "ஒரு எண்.", "MATH_ARITHMETIC_HELPURL": "https://ta.wikipedia.org/wiki/%E0%AE%8E%E0%AE%A3%E0%AF%8D%E0%AE%95%E0%AE%A3%E0%AE%BF%E0%AE%A4%E0%AE%AE%E0%AF%8D", @@ -111,8 +112,8 @@ "MATH_SINGLE_TOOLTIP_NEG": "ஒரு எண்ணின் எதிர்மறை மதிப்பை பின்கொடு", "MATH_SINGLE_TOOLTIP_LN": "ஒரு எண்ணின் (இயற்கை) மடக்கை மதிப்பை பின்கொடு.", "MATH_SINGLE_TOOLTIP_LOG10": "ஒரு எண்ணின் (10) மடக்கை மதிப்பை பின்கொடு.", - "MATH_SINGLE_TOOLTIP_EXP": "e-இன் எண் அடுக்கு பெருக்கை பின்கொடு.", - "MATH_SINGLE_TOOLTIP_POW10": "10-இன் எண் அடுக்கு பெருக்கை பின்கொடு.", + "MATH_SINGLE_TOOLTIP_EXP": "e-இன் எண் அடுக்கு பெருக்கை பின்கொடு.", + "MATH_SINGLE_TOOLTIP_POW10": "10-இன் எண் அடுக்கு பெருக்கை பின்கொடு.", "MATH_TRIG_HELPURL": "https://ta.wikipedia.org/wiki/%E0%AE%AE%E0%AF%81%E0%AE%95%E0%AF%8D%E0%AE%95%E0%AF%8B%E0%AE%A3%E0%AE%B5%E0%AE%BF%E0%AE%AF%E0%AE%B2%E0%AF%8D_%E0%AE%9A%E0%AE%BE%E0%AE%B0%E0%AF%8D%E0%AE%AA%E0%AF%81%E0%AE%95%E0%AE%B3%E0%AF%8D", "MATH_TRIG_TOOLTIP_SIN": "டிகிரீ சைன் மதிப்பை பின்கொடு.", "MATH_TRIG_TOOLTIP_COS": "டிகிரீ கோசைன் மதிப்பை பின்கொடு", @@ -126,8 +127,8 @@ "MATH_IS_ODD": "2-ஆல் பகாத", "MATH_IS_PRIME": "எண் பகாத்தனிதானதா?", "MATH_IS_WHOLE": "எண் முழுதானதா?", - "MATH_IS_POSITIVE": "எண் நேர்ம முழுதானதா ?", - "MATH_IS_NEGATIVE": "எண் குறைவானதா ?", + "MATH_IS_POSITIVE": "எண் நேர்ம முழுதானதா ?", + "MATH_IS_NEGATIVE": "எண் குறைவானதா ?", "MATH_IS_DIVISIBLE_BY": "ஆல் வகுபடக் கூடியது", "MATH_CHANGE_TITLE": "மாற்று %1 மூலம் %2", "MATH_CHANGE_TOOLTIP": "எண்னை '%1' மதிப்பால் கூட்டு,", @@ -155,8 +156,8 @@ "MATH_MODULO_TOOLTIP": "இரண்டு எண்கள் மூலம் பிரிவில் இருந்து எஞ்சியதை பின்கொடு.", "MATH_CONSTRAIN_TITLE": "%1 மாறியை %2 மேலும் %3 கீழும் வற்புறுத்து", "MATH_CONSTRAIN_TOOLTIP": "எண் மாறி வீசுகளம் உள்ளடங்கிய வாறு வற்புறுத்து", - "MATH_RANDOM_INT_TITLE": "வீசுகளம் %1 இல் இருந்து %2 உள்ளடங்கிய வாறு சீரற்ற எண்", - "MATH_RANDOM_INT_TOOLTIP": "வீசுகளம் இல் இருந்த (உள்ளடங்கிய) வாறு சீரற்ற எண் பின்கொடு.", + "MATH_RANDOM_INT_TITLE": "வீசுகளம் %1 இல் இருந்து %2 உள்ளடங்கிய வாறு சீரற்ற எண்", + "MATH_RANDOM_INT_TOOLTIP": "வீசுகளம் இல் இருந்த (உள்ளடங்கிய) வாறு சீரற்ற எண் பின்கொடு.", "MATH_RANDOM_FLOAT_TITLE_RANDOM": "சீரற்ற எண் பின்னம்", "MATH_RANDOM_FLOAT_TOOLTIP": "சீரற்ற எண் பின்னம், 0.0 இல் இருந்து 1.0 உட்பட, பின்கொடு.", "TEXT_TEXT_HELPURL": "https://ta.wikipedia.org/wiki/%E0%AE%9A%E0%AE%B0%E0%AE%AE%E0%AF%8D_%28%E0%AE%95%E0%AE%A3%E0%AE%BF%E0%AE%A9%E0%AE%BF%E0%AE%AF%E0%AE%BF%E0%AE%AF%E0%AE%B2%E0%AF%8D%29", @@ -189,7 +190,7 @@ "TEXT_GET_SUBSTRING_START_FIRST": "-இல் உட்கணம் முதல் எழுத்திலிருந்து", "TEXT_GET_SUBSTRING_END_FROM_START": "எழுத்து # வரை", "TEXT_GET_SUBSTRING_END_FROM_END": "எழுத்து கடைசியில் இருந்து # வரை", - "TEXT_GET_SUBSTRING_END_LAST": "கடைசி எழுத்து வரை", + "TEXT_GET_SUBSTRING_END_LAST": "கடைசி எழுத்து வரை", "TEXT_CHANGECASE_TOOLTIP": "உரை நகல் எடுத்து பொரிய/சின்ன எழுத்து மாற்றி பின்கொடு.", "TEXT_CHANGECASE_OPERATOR_UPPERCASE": "பொரிய எழுத்துக்கு மாற்று", "TEXT_CHANGECASE_OPERATOR_LOWERCASE": "சின்ன எழுத்துக்கு மாற்று", @@ -222,15 +223,15 @@ "LISTS_INDEX_OF_LAST": "உரையில் கடைசி தோற்ற இடத்தை காட்டு", "LISTS_INDEX_OF_TOOLTIP": "பட்டியலில் மதிப்பின் முதல், கடைசி தோற்ற இடத்தை பின்கொடு. காணாவிட்டால் %1 பின்கொடு.", "LISTS_GET_INDEX_GET": "எடு", - "LISTS_GET_INDEX_GET_REMOVE": "பெற்று நீக்குக", - "LISTS_GET_INDEX_REMOVE": "நீக்குக", + "LISTS_GET_INDEX_GET_REMOVE": "பெற்று நீக்கு", + "LISTS_GET_INDEX_REMOVE": "அகற்று", "LISTS_GET_INDEX_FROM_END": "கடைசியில் இருந்து #", "LISTS_GET_INDEX_FIRST": "முதல்", "LISTS_GET_INDEX_LAST": "கடைசி", "LISTS_GET_INDEX_RANDOM": "ஏதோ ஒன்று", "LISTS_INDEX_FROM_START_TOOLTIP": "%1 முதல் உருப்படி.", "LISTS_INDEX_FROM_END_TOOLTIP": "%1 கடைசி உருப்படி.ி", - "LISTS_GET_INDEX_TOOLTIP_GET_FROM": "பட்டியலில் இடத்தில் உருப்படி பின்கொடு.", + "LISTS_GET_INDEX_TOOLTIP_GET_FROM": "பட்டியலில் இடத்தில் உருப்படி பின்கொடு.", "LISTS_GET_INDEX_TOOLTIP_GET_FIRST": "பட்டியல் முதல் உருப்படியை பின்கொடு,", "LISTS_GET_INDEX_TOOLTIP_GET_LAST": "பட்டியல் கடைசி உருப்படியை பின்கொடு,", "LISTS_GET_INDEX_TOOLTIP_GET_RANDOM": "பட்டியல் சீரற்ற உருப்படியை பின்கொடு,", diff --git a/msg/json/tcy.json b/msg/json/tcy.json index f92d18af6..06704e50b 100644 --- a/msg/json/tcy.json +++ b/msg/json/tcy.json @@ -53,7 +53,7 @@ "COLOUR_BLEND_COLOUR2": "ಬಣ್ಣೊ ೨(ರಡ್ಡ್)", "COLOUR_BLEND_RATIO": "ಅನುಪಾತೊ", "COLOUR_BLEND_TOOLTIP": "ಕೊರಿನ ಅನುಪಾತೊಡು (0.0- 1.0) ರಡ್ಡ್ ಬಣ್ಣೊಲೆನ್ ಬೆರಕೆ ಮಲ್ಪುಂಡು.", - "CONTROLS_REPEAT_TITLE": " %1 ಸರ್ತಿ ಕೂಡೊರ ಮಲ್ಪು", + "CONTROLS_REPEAT_TITLE": "%1 ಸರ್ತಿ ಕೂಡೊರ ಮಲ್ಪು", "CONTROLS_REPEAT_INPUT_DO": "ಮಲ್ಪುಲೆ", "CONTROLS_REPEAT_TOOLTIP": "ಕೆಲವು ಪಾತೆರೊಲೆನ್ ಮಸ್ತ್ ಸರ್ತಿ ಮಲ್ಪು", "CONTROLS_WHILEUNTIL_OPERATOR_WHILE": "ಉಂದು ನಿಜ ಆಂಡ ಕುಡೊರ ಮಲ್ಪು:", @@ -159,12 +159,12 @@ "MATH_ONLIST_OPERATOR_RANDOM": "ಪಟ್ಟಿದ ಒವ್ವಾಂಡಲ ಒಂಜಿ ವಿಷಯ", "MATH_ONLIST_TOOLTIP_RANDOM": "ಪಟ್ಟಿದ ಒವ್ವಾಂಡಲ ಒಂಜಿ ಅಂಶೊನು ಪಿರಕೊರು.", "MATH_MODULO_HELPURL": "https://en.wikipedia.org/wiki/ಮೋಡ್ಯುಲೊ_ಒಪರೇಶನ್", - "MATH_MODULO_TITLE": " %1 ÷ %2 ತ ಶೇಷ", + "MATH_MODULO_TITLE": "%1 ÷ %2 ತ ಶೇಷ", "MATH_MODULO_TOOLTIP": "ರಡ್ಡ್ ಸಂಖ್ಯೆಲೆನ್ ಭಾಗ ಮಲ್ತ್‌ದ್ ಶೇಷೊನು ಪಿರಕೊರು.", "MATH_CONSTRAIN_TITLE": "%2 ಕಮ್ಮಿ %3 ಜಾಸ್ತಿ %1 ನಿರ್ಬಂಧ ಮಲ್ಪು", "MATH_CONSTRAIN_TOOLTIP": "ನಿಗದಿತ ಮಿತಿತ ನಡುಟು ಒಂಜಿ ಸಂಖ್ಯೆನ್ ನಿರ್ಬಂಧ ಮಲ್ಪು", "MATH_RANDOM_INT_HELPURL": "https://en.wikipedia.org/wiki/ರಾಂಡಮ್_ನಂಬರ್_ಜನರೇಶನ್", - "MATH_RANDOM_INT_TITLE": " %1 ಡ್ದ್ %2 ಯಾದೃಚ್ಛಿಕ ಪೂರ್ಣಾಂಕೊ", + "MATH_RANDOM_INT_TITLE": "%1 ಡ್ದ್ %2 ಯಾದೃಚ್ಛಿಕ ಪೂರ್ಣಾಂಕೊ", "MATH_RANDOM_INT_TOOLTIP": "ರಡ್ಡ್ ನಿಗದಿತ ಮಿತಿತ ನಡುತ್ತ ಯಾದೃಚ್ಛಿಕ ಪೂರ್ಣಾಂಕೊನು ಪಿರಕೊರು", "MATH_RANDOM_FLOAT_HELPURL": "https://en.wikipedia.org/wiki/ರಾಂಡಮ್_ನಂಬರ್_ಜನರೇಶನ್", "MATH_RANDOM_FLOAT_TITLE_RANDOM": "ಒವ್ವಾಂಡಲ ಒಂಜಿ ಭಿನ್ನರಾಶಿ", @@ -301,13 +301,13 @@ "PROCEDURES_CALLNORETURN_HELPURL": "https://en.wikipedia.org/wiki/ವರ್ಗಮೂಲೊ", "PROCEDURES_CALLNORETURN_TOOLTIP": "'%1' ಬಳಕೆದಾರೆರೆ ಕಾರ್ಯೊನು ನಡಪಾಲೆ.", "PROCEDURES_CALLRETURN_HELPURL": "https://en.wikipedia.org/wiki/ವರ್ಗಮೂಲೊ", - "PROCEDURES_CALLRETURN_TOOLTIP": " ಬಳಕೆದಾರೆರೆ ಕಾರ್ಯೊ '%1' ನು ನಡಪಾಲೆ ಬುಕ್ಕೊ ಅಯಿತ ಉತ್ಪಾದನೆನ್ ಗಲಸ್‌ಲೆ.", + "PROCEDURES_CALLRETURN_TOOLTIP": "ಬಳಕೆದಾರೆರೆ ಕಾರ್ಯೊ '%1' ನು ನಡಪಾಲೆ ಬುಕ್ಕೊ ಅಯಿತ ಉತ್ಪಾದನೆನ್ ಗಲಸ್‌ಲೆ.", "PROCEDURES_MUTATORCONTAINER_TITLE": "ಉಲಪರಿಪು", "PROCEDURES_MUTATORCONTAINER_TOOLTIP": "ಸೇರಾಲೆ, ದೆತ್ತ್‌ ಬುಡುಲೆ, ಅತ್ತಂಡ ಈ ಕಾರ್ಯೊಗು ಉಲಪರಿಪುಲೆನ್ ಕುಡ ಒತ್ತರೆ ಮಲ್ಪುಲೆ.", "PROCEDURES_MUTATORARG_TITLE": "ಉಲಪರಿಪುದ ಪುದರ್:", "PROCEDURES_MUTATORARG_TOOLTIP": "ಕಾರ್ಯೊಗು ಒಂಜಿ ಉಲಪರಿಪುನು ಸೇರಲೆ.", "PROCEDURES_HIGHLIGHT_DEF": "ದೆರ್ತ್ ತೋಜುನ ಕಾರ್ಯೊದ ವ್ಯಾಕ್ಯಾನೊ", - "PROCEDURES_CREATE_DO": " '%1'ನ್ ಉಂಡುಮಲ್ಪುಲೆ", + "PROCEDURES_CREATE_DO": "'%1'ನ್ ಉಂಡುಮಲ್ಪುಲೆ", "PROCEDURES_IFRETURN_TOOLTIP": "ಮೌಲ್ಯೊ ಸತ್ಯೊ ಆಂಡ, ರಡ್ಡನೆ ಮೌಲ್ಯೊನು ಪಿರಕೊರು.", "PROCEDURES_IFRETURN_WARNING": "ಎಚ್ಚರಿಕೆ: ಒಂಜಿ ಕಾರ್ಯ ವ್ಯಾಕ್ಯಾನೊದುಲಯಿ ಮಾತ್ರ ಈ ತಡೆನ್ ಗಲಸೊಲಿ.", "WORKSPACE_COMMENT_DEFAULT_TEXT": "ದಾದಾಂಡಲ ಪನ್ಲೇ...", diff --git a/msg/json/tdd.json b/msg/json/tdd.json index 1d80f22c1..2be90564c 100644 --- a/msg/json/tdd.json +++ b/msg/json/tdd.json @@ -56,7 +56,7 @@ "CONTROLS_FLOW_STATEMENTS_WARNING": "ᥜᥣᥒᥳ: ᥙᥘᥩᥐᥳᥟᥢᥴᥢᥭᥳ ᥐᥨᥭᥰᥓᥬᥳᥘᥨᥭᥲᥖᥣᥱ ᥑᥩᥙᥱᥛᥨᥢᥰᥐᥨᥭᥰ.", "CONTROLS_IF_TOOLTIP_1": "ᥙᥩᥰᥝᥣᥲ ᥐᥣᥲᥑᥢᥴ (ᥢᥛᥳᥐᥖᥳ) ᥛᥣᥢᥱᥛᥦᥢᥲᥕᥝᥳᥓᥪᥒᥴ ᥞᥥᥖᥰᥑᥩᥲᥐᥥᥙᥰᥗᥩᥢᥴᥐᥛᥲᥚᥩᥒᥲ.", "CONTROLS_IF_TOOLTIP_2": "ᥙᥩᥰᥝᥣᥲ ᥐᥣᥲᥑᥢᥴ (ᥢᥛᥳᥐᥖᥳ) ᥛᥣᥢᥱᥛᥦᥢᥲᥕᥝᥳᥓᥪᥒᥴ ᥞᥥᥖᥰᥑᥩᥲᥐᥥᥙᥰᥗᥩᥢᥴᥐᥛᥲᥚᥩᥒᥲ.", - "CONTROLS_IF_TOOLTIP_3": "ᥔᥒᥴᥝᥣᥲ ᥐᥣᥲᥑᥢᥴ(ᥢᥛᥳᥐᥖᥳ)ᥛᥣᥳᥢᥪᥒᥲ ᥛᥣᥢᥱᥛᥦᥢᥲᥓᥪᥒᥴ ᥞᥥᥖᥰᥙᥘᥩᥐᥳᥟᥩᥢᥴᥖᥣᥒᥰᥔᥧᥖᥰ ᥖᥤᥲᥢᥬᥰᥑᥩᥲᥐᥥᥙᥰᥗᥩᥢᥴᥖ. ᥔᥒᥴᥝᥣᥲ ᥐᥣᥲᥑᥢᥴ(ᥢᥛᥳᥐᥖᥳ)ᥛᥣᥭᥴᥔᥩᥒᥴᥛᥣᥢᥱᥛᥦᥢᥲᥓᥪᥒᥴ ᥞᥥᥖᥰᥙᥦᥖᥲ ᥙᥘᥩᥐᥳᥔᥩᥒᥴ ᥖᥤᥲᥢᥬᥰᥑᥩᥲᥐᥥᥙᥰᥗᥩᥢᥴ.", + "CONTROLS_IF_TOOLTIP_3": "ᥔᥒᥴᥝᥣᥲ ᥐᥣᥲᥑᥢᥴ(ᥢᥛᥳᥐᥖᥳ)ᥛᥣᥳᥢᥪᥒᥲ ᥛᥣᥢᥱᥛᥦᥢᥲᥓᥪᥒᥴ ᥞᥥᥖᥰᥙᥘᥩᥐᥳᥟᥩᥢᥴᥖᥣᥒᥰᥔᥧᥖᥰ ᥖᥤᥲᥢᥬᥰᥑᥩᥲᥐᥥᥙᥰᥗᥩᥢᥴᥖ. ᥔᥒᥴᥝᥣᥲ ᥐᥣᥲᥑᥢᥴ(ᥢᥛᥳᥐᥖᥳ)ᥛᥣᥭᥴᥔᥩᥒᥴᥛᥣᥢᥱᥛᥦᥢᥲᥓᥪᥒᥴ ᥞᥥᥖᥰᥙᥦᥖᥲ ᥙᥘᥩᥐᥳᥔᥩᥒᥴ ᥖᥤᥲᥢᥬᥰᥑᥩᥲᥐᥥᥙᥰᥗᥩᥢᥴ.", "CONTROLS_IF_TOOLTIP_4": "ᥔᥒᥴᥝᥣᥲ ᥐᥣᥲᥑᥢᥴ(ᥢᥛᥳᥐᥖᥳ)ᥛᥣᥭᥴᥢᥪᥒᥲ ᥛᥣᥢᥱᥛᥦᥢᥲᥓᥪᥒᥴ ᥞᥥᥖᥰᥙᥘᥩᥐᥳᥟᥩᥢᥴᥖᥣᥒᥰᥔᥧᥖᥰ ᥖᥤᥲᥢᥬᥰᥑᥩᥲᥐᥥᥙᥰᥗᥩᥢᥴᥖ. ᥘᥫᥴᥔᥥᥴᥢᥢᥳ, ᥔᥒᥴᥝᥣᥲ ᥐᥣᥲᥑᥢᥴ (ᥢᥛᥳᥐᥖᥳ) ᥛᥣᥭᥴᥔᥩᥒᥴ ᥛᥣᥢᥱᥛᥦᥢᥲᥓᥪᥒᥴ ᥞᥥᥖᥰᥙᥦᥖᥲ ᥙᥘᥩᥐᥳᥔᥩᥒᥴ ᥖᥤᥲᥢᥬᥰᥑᥩᥲᥐᥥᥙᥰᥗᥩᥢᥴᥖ. ᥔᥒᥴᥝᥣᥲ ᥐᥣᥲᥑᥢᥴ(ᥢᥛᥳᥐᥖᥳ) ᥟᥛᥱᥛᥤᥰᥘᥩᥒᥲᥛᥣᥢᥱᥛᥦᥢᥲ ᥔᥒᥴᥓᥪᥒᥴ ᥞᥥᥖᥰᥙᥦᥖᥲᥙᥘᥩᥐᥳ ᥐᥛᥰᥘᥪᥛᥰ ᥖᥤᥲᥢᥬᥰᥑᥩᥲᥐᥥᥙᥰᥗᥩᥢᥴᥖ.", "CONTROLS_IF_MSG_IF": "ᥔᥒᥴᥝᥣᥲ", "CONTROLS_IF_MSG_ELSEIF": "ᥔᥒᥴᥝᥣᥲ ᥘᥫᥴᥔᥥᥴᥢᥢᥳ", diff --git a/msg/json/te.json b/msg/json/te.json index e18f81b3d..60ecbd107 100644 --- a/msg/json/te.json +++ b/msg/json/te.json @@ -74,7 +74,7 @@ "MATH_ONLIST_OPERATOR_AVERAGE": "జాబితా సగటు", "TEXT_CREATE_JOIN_TITLE_JOIN": "చేరు", "TEXT_LENGTH_TITLE": "%1 పొడువు", - "TEXT_ISEMPTY_TITLE": "% 1 ఖాళీ", + "TEXT_ISEMPTY_TITLE": "%1 ఖాళీ", "TEXT_CHARAT_FIRST": "మొదటి వర్ణాన్ని పొందు", "TEXT_CHARAT_LAST": "చివరి వర్ణాన్ని పొందు", "TEXT_CHARAT_RANDOM": "యాదృశ్చిక వర్ణాన్ని పొందు", diff --git a/msg/json/th.json b/msg/json/th.json index cf969982c..7766f326b 100644 --- a/msg/json/th.json +++ b/msg/json/th.json @@ -281,7 +281,7 @@ "LISTS_GET_SUBLIST_START_FROM_END": "ดึงรายการย่อยจาก # จากท้ายสุด", "LISTS_GET_SUBLIST_START_FIRST": "ดึงรายการย่อยทั้งแต่แรกสุด", "LISTS_GET_SUBLIST_END_FROM_START": "จนถึง #", - "LISTS_GET_SUBLIST_END_FROM_END": "ถึง # จากท้ายสุด", + "LISTS_GET_SUBLIST_END_FROM_END": "ถึง # จากท้ายสุด", "LISTS_GET_SUBLIST_END_LAST": "ถึง ท้ายสุด", "LISTS_GET_SUBLIST_TOOLTIP": "สร้างสำเนารายการในช่วงที่กำหนด", "LISTS_SORT_TITLE": "เรียงลำดับ %1 %2 %3", diff --git a/msg/json/tl.json b/msg/json/tl.json index fc643d323..fad9ab9f9 100644 --- a/msg/json/tl.json +++ b/msg/json/tl.json @@ -56,7 +56,6 @@ "CONTROLS_IF_ELSEIF_TOOLTIP": "Mag dagdag ng condition sa if block.", "CONTROLS_IF_ELSE_TOOLTIP": "Mag Add ng final, kunin lahat ng condition sa if block.", "LOGIC_COMPARE_TOOLTIP_EQ": "Nag babalik ng true kung ang pinasok ay parehong magkatumbas.", - "LOGIC_COMPARE_TOOLTIP_NEQ": "Return true if both inputs are not equal to each other.", "LOGIC_COMPARE_TOOLTIP_LT": "Nag babalik ng true kung ang unang pinasok ay maliit kaysa sa pangalawang pinasok.", "LOGIC_COMPARE_TOOLTIP_LTE": "Nag babalik ng true kung ang unang pinasok ay maliit sa o katumbas sa pangalawang pinasok.", "LOGIC_COMPARE_TOOLTIP_GT": "Nagbabalik ng true kung ang unang pinasok ay mas malaki kaysa pangalawang pinasok.", diff --git a/msg/json/tr.json b/msg/json/tr.json index 54d449881..a31acf143 100644 --- a/msg/json/tr.json +++ b/msg/json/tr.json @@ -87,7 +87,7 @@ "CONTROLS_FOR_TOOLTIP": "Başlangıç sayısından bitiş sayısına kadar belirtilen aralık ve belirtilen engeller ile devam eden değerler alan '%1' değişkeni oluştur.", "CONTROLS_FOR_TITLE": "ile sayılır %1 %2 den %3 ye, her adımda %4 değişim", "CONTROLS_FOREACH_TITLE": "her öğe için %1 listede %2", - "CONTROLS_FOREACH_TOOLTIP": "Bir listedeki her öğe için '%1' değişkenini maddeye atayın ve bundan sonra bazı açıklamalar yapın.", + "CONTROLS_FOREACH_TOOLTIP": "Bir listedeki her öğe için '%1' değişkenini maddeye atayın ve bundan sonra bazı açıklamalar yapın.", "CONTROLS_FLOW_STATEMENTS_OPERATOR_BREAK": "döngüden çık", "CONTROLS_FLOW_STATEMENTS_OPERATOR_CONTINUE": "döngünün sonraki adımından devam et", "CONTROLS_FLOW_STATEMENTS_TOOLTIP_BREAK": "İçeren döngüden çık.", diff --git a/msg/json/ug-arab.json b/msg/json/ug-arab.json index 6b1ea0a18..37dd257a3 100644 --- a/msg/json/ug-arab.json +++ b/msg/json/ug-arab.json @@ -36,7 +36,7 @@ "DELETE_VARIABLE_CONFIRMATION": "ئۆچۈرۈش “%2” ئۆزگەرگۈچى مىقدار%1 ئىشلىتىلىش ئورنى بارمۇ؟", "DELETE_VARIABLE": "“%1” ئۆزگەرگۈچى مىقدارنى ئۆچۈرۈش", "COLOUR_PICKER_HELPURL": "https://zh.wikipedia.org/wiki/رەڭگى", - "COLOUR_PICKER_TOOLTIP": " تاختىدىن رەڭنى تاللاڭ", + "COLOUR_PICKER_TOOLTIP": "تاختىدىن رەڭنى تاللاڭ", "COLOUR_RANDOM_TITLE": "خالىغان رەڭ", "COLOUR_RANDOM_TOOLTIP": "ئىختىيارىي بىر رەڭنى تاللاڭ", "COLOUR_RGB_TITLE": "رەڭگى", @@ -53,7 +53,7 @@ "CONTROLS_WHILEUNTIL_OPERATOR_WHILE": "تەكرار بولۇش", "CONTROLS_WHILEUNTIL_OPERATOR_UNTIL": "تەكرارلىقى", "CONTROLS_FLOW_STATEMENTS_OPERATOR_BREAK": "ئۈزۈلۈپ ئايلىنىش", - "CONTROLS_FLOW_STATEMENTS_OPERATOR_CONTINUE": " كىيىنكى قېتىم داۋاملىق ئايلىنىشن", + "CONTROLS_FLOW_STATEMENTS_OPERATOR_CONTINUE": "كىيىنكى قېتىم داۋاملىق ئايلىنىشن", "CONTROLS_FLOW_STATEMENTS_TOOLTIP_BREAK": "ئۇنىڭ دەۋرىي ئۈزۈلۈش ئۆز ئىچىگە ئالىدۇ .", "CONTROLS_FLOW_STATEMENTS_TOOLTIP_CONTINUE": "بۇ ئايلىنىشنىڭ قالغان قىسمى ئاتلاپ ئۆتۈپ كېتىدۇ ، ھەمدە داۋاملىق كېلەر قېتىملىق ئىتېراتسىيە .", "CONTROLS_FLOW_STATEMENTS_WARNING": "ئاگاھلاندۇرۇش : بۇ پەقەت بىر ئايلىنىش دەۋرى ئىچىدە ئىشلىتىشكە بولىدۇ .", @@ -81,7 +81,7 @@ "LOGIC_BOOLEAN_FALSE": "يالغان", "LOGIC_BOOLEAN_TOOLTIP": "راست ياكى يالغان قايتىش", "LOGIC_NULL": "قۇرۇق", - "LOGIC_NULL_TOOLTIP": " نۆلگە قايتىش", + "LOGIC_NULL_TOOLTIP": "نۆلگە قايتىش", "LOGIC_TERNARY_CONDITION": "سىناق", "LOGIC_TERNARY_IF_TRUE": "ئەگەر راست بولسا", "LOGIC_TERNARY_IF_FALSE": "ئەگەر يالغان بولسا", @@ -89,32 +89,32 @@ "MATH_NUMBER_TOOLTIP": "بىر سان.", "MATH_ARITHMETIC_HELPURL": "https://zh.wikipedia.org/wiki/ئارىفمېتىكىلىق", "MATH_SINGLE_HELPURL": "https://zh.wikipedia.org/wiki/كۋادرات يىلتىز", - "MATH_SINGLE_OP_ROOT": " كۋادرات يىلتىز", + "MATH_SINGLE_OP_ROOT": "كۋادرات يىلتىز", "MATH_SINGLE_OP_ABSOLUTE": "مۇتلەق", "MATH_TRIG_HELPURL": "https://zh.wikipedia.org/wiki/ترىگونومېتىرىيىلىك فۇنكسىيە", "MATH_CONSTANT_HELPURL": "https://zh.wikipedia.org/wiki/ماتېماتىكا تۇراقلىق سانى", "MATH_IS_EVEN": "جۈپ سان", - "MATH_IS_ODD": " تاق سان", + "MATH_IS_ODD": "تاق سان", "MATH_IS_PRIME": "تۈپ سان", "MATH_IS_WHOLE": "پۈتۈن سان", "MATH_IS_POSITIVE": "مۇسبەت", - "MATH_IS_NEGATIVE": " مەنپى", + "MATH_IS_NEGATIVE": "مەنپى", "MATH_IS_DIVISIBLE_BY": "پۈتۈن بۆلۈنۈش", "MATH_CHANGE_HELPURL": "https://zh.wikipedia.org/wiقوشۇش", - "MATH_CHANGE_TITLE": " ئۆزگەرتىش %1 دىن %2", + "MATH_CHANGE_TITLE": "ئۆزگەرتىش %1 دىن %2", "MATH_ROUND_HELPURL": "https://zh.wikipedia.org/wiki/سانلىق قىممەت تۈزىتىش", "MATH_ROUND_OPERATOR_ROUND": "تۆۋەنگە تارتىڭ", - "MATH_ROUND_OPERATOR_ROUNDUP": " تۆۋەنگە تارتىڭ", + "MATH_ROUND_OPERATOR_ROUNDUP": "تۆۋەنگە تارتىڭ", "MATH_ROUND_OPERATOR_ROUNDDOWN": "تۆۋەنگە تارتىڭ", "MATH_ONLIST_OPERATOR_MIN": "جەدۋەل ئىچىدىكى ئەڭ كىچىك قىممەت", - "MATH_ONLIST_TOOLTIP_MIN": " جەدۋەلدىكى ئەڭ كىچىك سانغا قايتىش", - "MATH_ONLIST_OPERATOR_MAX": " جەدۋەلدىكى ئەڭ چوڭ قىممەت", + "MATH_ONLIST_TOOLTIP_MIN": "جەدۋەلدىكى ئەڭ كىچىك سانغا قايتىش", + "MATH_ONLIST_OPERATOR_MAX": "جەدۋەلدىكى ئەڭ چوڭ قىممەت", "MATH_ONLIST_OPERATOR_AVERAGE": "جەدۋەل ئىچىدىكى ئوتتۇرىچە سان", "MATH_ONLIST_OPERATOR_MEDIAN": "جەدۋەلدىكى ئوتتۇرا سان", - "MATH_ONLIST_TOOLTIP_MEDIAN": " جەدۋەلدىكى ئوتتۇرا سانغا قايتىش", - "MATH_ONLIST_OPERATOR_MODE": " جەدۋەل ھالىتى", + "MATH_ONLIST_TOOLTIP_MEDIAN": "جەدۋەلدىكى ئوتتۇرا سانغا قايتىش", + "MATH_ONLIST_OPERATOR_MODE": "جەدۋەل ھالىتى", "MATH_MODULO_HELPURL": "https://zh.wikipedia.org/wiki/مودېل ھېسابى", - "TEXT_CREATE_JOIN_TITLE_JOIN": " قوشۇش", + "TEXT_CREATE_JOIN_TITLE_JOIN": "قوشۇش", "LISTS_GET_INDEX_GET": "قولغا كەلتۈرۈش", "LISTS_GET_INDEX_REMOVE": "چىقىرىۋىتىش", "LISTS_GET_INDEX_FIRST": "تۇنجى", @@ -125,7 +125,7 @@ "LISTS_SORT_ORDER_ASCENDING": "يۇقىرىغا", "LISTS_SORT_ORDER_DESCENDING": "تۆۋەنگە", "LISTS_SORT_TYPE_NUMERIC": "سان بويىچە تىزىل", - "LISTS_SORT_TYPE_TEXT": " ھەرپ بويىچە تىزىل", + "LISTS_SORT_TYPE_TEXT": "ھەرپ بويىچە تىزىل", "LISTS_SORT_TYPE_IGNORECASE": "ھەرب بويىچە تىزىل، چوڭ كىچىك يېزىلىش ھېساپ قىلىنمايدۇ", "DIALOG_OK": "ماقۇل", "DIALOG_CANCEL": "ۋاز كەچ" diff --git a/msg/json/uk.json b/msg/json/uk.json index e5d397ca5..6d9b4b454 100644 --- a/msg/json/uk.json +++ b/msg/json/uk.json @@ -112,7 +112,7 @@ "LOGIC_TERNARY_CONDITION": "тест", "LOGIC_TERNARY_IF_TRUE": "якщо істина", "LOGIC_TERNARY_IF_FALSE": "якщо хибність", - "LOGIC_TERNARY_TOOLTIP": "Перевіряє умову в 'тест'. Якщо умова істинна, то повертає значення 'якщо істина'; в іншому випадку повертає значення 'якщо хибність'.", + "LOGIC_TERNARY_TOOLTIP": "Перевіряє умову в 'тест'. Якщо умова істинна, то повертає значення 'якщо істина'; в іншому випадку повертає значення 'якщо хибність'.", "MATH_NUMBER_HELPURL": "https://uk.wikipedia.org/wiki/Число", "MATH_NUMBER_TOOLTIP": "Число.", "MATH_ARITHMETIC_HELPURL": "https://uk.wikipedia.org/wiki/Арифметика", @@ -155,7 +155,7 @@ "MATH_ROUND_OPERATOR_ROUND": "округлити", "MATH_ROUND_OPERATOR_ROUNDUP": "округлити до більшого", "MATH_ROUND_OPERATOR_ROUNDDOWN": "округлити до меншого", - "MATH_ONLIST_HELPURL": "http://www.mapleprimes.com/questions/100441-Applying-Function-To-List-Of-Numbers", + "MATH_ONLIST_HELPURL": "https://www.mapleprimes.com/questions/100441-Applying-Function-To-List-Of-Numbers", "MATH_ONLIST_OPERATOR_SUM": "сума списку", "MATH_ONLIST_TOOLTIP_SUM": "Повертає суму всіх чисел у списку.", "MATH_ONLIST_OPERATOR_MIN": "мінімум списку", diff --git a/msg/json/ur.json b/msg/json/ur.json index d5c5036cd..adc8bb485 100644 --- a/msg/json/ur.json +++ b/msg/json/ur.json @@ -6,6 +6,7 @@ "Obaid Raza", "Rizwan", "Sayam Asjad", + "TheAafi", "عثمان خان شاہ", "محمد افضل" ] @@ -16,11 +17,11 @@ "DUPLICATE_BLOCK": "نقل", "ADD_COMMENT": "کمنٹ کریں", "REMOVE_COMMENT": "تبصرہ کو ہٹا دیں", - "DUPLICATE_COMMENT": " نقل تبصرہ", + "DUPLICATE_COMMENT": "دہرا تبصرہ", "EXTERNAL_INPUTS": "خارجی دخل اندازی", "INLINE_INPUTS": "بین السطور داخل کریں", "DELETE_BLOCK": "حذف بلاک", - "DELETE_X_BLOCKS": " بلاکوں کو حذف کریں %1", + "DELETE_X_BLOCKS": "بلاکوں کو حذف کریں %1", "DELETE_ALL_BLOCKS": "تمام%1 بلاکس کو حذف کریں؟", "CLEAN_UP": "بلاکس صاف کریں", "COLLAPSE_BLOCK": "بند کرو بلاک", @@ -39,7 +40,7 @@ "NEW_STRING_VARIABLE": "متغیر بنائیں String", "NEW_NUMBER_VARIABLE": "عدد متغیر بناییں", "NEW_COLOUR_VARIABLE": "رنگ متغیر بنائیں", - "NEW_VARIABLE_TYPE_TITLE": " نئی متغیر قسم", + "NEW_VARIABLE_TYPE_TITLE": "نئی متغیر قسم", "NEW_VARIABLE_TITLE": "نیا ویریابل نام:", "VARIABLE_ALREADY_EXISTS": "ایک متغیر نام %1 پہلے سے ہی موجود ہے.", "VARIABLE_ALREADY_EXISTS_FOR_ANOTHER_TYPE": "ایک متغیر نام %1 کسی دوسرے قسم کے لئے پہلے ہی موجود ہے: %2.", @@ -103,7 +104,7 @@ "LISTS_SET_INDEX_SET": "تعین کریں", "LISTS_SET_INDEX_INSERT": "میں درج کریں", "LISTS_SET_INDEX_INPUT_TO": "بطور", - "LISTS_SET_INDEX_TOOLTIP_SET_FIRST": "فہرست میں پہلا آئٹم کا تعین کریں", + "LISTS_SET_INDEX_TOOLTIP_SET_FIRST": "فہرست میں پہلے آئٹم کا تعین کریں", "PROCEDURES_DEFNORETURN_TITLE": "کو", "PROCEDURES_DEFNORETURN_PROCEDURE": "کچھ کرو", "PROCEDURES_BEFORE_PARAMS": "سمیت:", diff --git a/msg/json/vi.json b/msg/json/vi.json index ad3473990..8585dded9 100644 --- a/msg/json/vi.json +++ b/msg/json/vi.json @@ -151,7 +151,7 @@ "MATH_IS_POSITIVE": "là số dương", "MATH_IS_NEGATIVE": "là số âm", "MATH_IS_DIVISIBLE_BY": "chia hết cho", - "MATH_IS_TOOLTIP": "Kiểm tra con số xem nó có phải là số chẵn, lẻ, nguyên tố, nguyên, dương, âm, hay xem nó có chia hết cho số đầu vào hay không. Hoàn trả đúng hay sai.", + "MATH_IS_TOOLTIP": "Kiểm tra con số xem nó có phải là số chẵn, lẻ, nguyên tố, nguyên, dương, âm, hay xem nó có chia hết cho số đầu vào hay không. Hoàn trả đúng hay sai.", "MATH_CHANGE_HELPURL": "https://vi.wikipedia.org/wiki/Ph%C3%A9p_c%E1%BB%99ng", "MATH_CHANGE_TITLE": "cộng vào %1 giá trị %2", "MATH_CHANGE_TOOLTIP": "Cộng số đầu vào vào biến \"%1\".", diff --git a/msg/json/yo.json b/msg/json/yo.json index b6c62963c..0535cd9e5 100644 --- a/msg/json/yo.json +++ b/msg/json/yo.json @@ -98,7 +98,7 @@ "LOGIC_TERNARY_CONDITION": "idanwo", "LOGIC_TERNARY_IF_TRUE": "bi otitọ", "LOGIC_TERNARY_IF_FALSE": "bi irọ", - "LOGIC_TERNARY_TOOLTIP": "Ṣe ayewo ipo naa ni 'idanwo'. Bi ipo nab a je otito, Da pada 'bi otito' iye; bibẹẹkọ da pada 'bi iro' iye.", + "LOGIC_TERNARY_TOOLTIP": "Ṣe ayewo ipo naa ni 'idanwo'. Bi ipo nab a je otito, Da pada 'bi otito' iye; bibẹẹkọ da pada 'bi iro' iye.", "MATH_NUMBER_HELPURL": "https://yo.wikipedia.org/wiki/Nọ́mbà", "MATH_NUMBER_TOOLTIP": "Nọ́mbà kan.", "MATH_ARITHMETIC_HELPURL": "https://yo.wikipedia.org/wiki/Ìṣírò", diff --git a/msg/json/yue.json b/msg/json/yue.json deleted file mode 100644 index cbf201513..000000000 --- a/msg/json/yue.json +++ /dev/null @@ -1,19 +0,0 @@ -{ - "@metadata": { - "authors": [ - "Ajeje Brazorf", - "Hello903hello", - "Liuxinyu970226", - "Moon0319" - ] - }, - "TODAY": "今日", - "HELP": "幫手", - "UNDO": "還原", - "REDO": "復原", - "COLOUR_PICKER_HELPURL": "https://zh-yue.wikipedia.org/wiki/色", - "CONTROLS_REPEAT_HELPURL": "https://zh-yue.wikipedia.org/wiki/For_迴圈", - "LISTS_GET_INDEX_RANDOM": "是但", - "DIALOG_OK": "仲可以", - "DIALOG_CANCEL": "取消" -} diff --git a/msg/json/zh-hans.json b/msg/json/zh-hans.json index 2f8d82851..70e48beb1 100644 --- a/msg/json/zh-hans.json +++ b/msg/json/zh-hans.json @@ -223,7 +223,7 @@ "TEXT_ISEMPTY_TITLE": "%1是空的", "TEXT_ISEMPTY_TOOLTIP": "如果给定的文本为空,则返回真。", "TEXT_INDEXOF_TOOLTIP": "返回第一个文本段在第二个文本段中的第一/最后一个匹配项的起始位置。如果未找到,则返回%1。", - "TEXT_INDEXOF_TITLE": "在文本 %1 里 %2 %3", + "TEXT_INDEXOF_TITLE": "在文本 %1 里 %2 %3", "TEXT_INDEXOF_OPERATOR_FIRST": "寻找第一次出现的文本", "TEXT_INDEXOF_OPERATOR_LAST": "寻找最后一次出现的文本", "TEXT_CHARAT_TITLE": "在文本%1 里 %2", diff --git a/msg/json/zh-hant.json b/msg/json/zh-hant.json index 6b735e90c..167422e71 100644 --- a/msg/json/zh-hant.json +++ b/msg/json/zh-hant.json @@ -200,7 +200,7 @@ "MATH_ATAN2_TITLE": "X:%1 Y:%2 的 Atan2", "MATH_ATAN2_TOOLTIP": "回傳點(X,Y)從 -180 至 180 度的反正切值。", "TEXT_TEXT_HELPURL": "https://zh.wikipedia.org/wiki/字串", - "TEXT_TEXT_TOOLTIP": "一粒字元、一個字詞或一行字", + "TEXT_TEXT_TOOLTIP": "一個字母、一個字詞或一行字", "TEXT_JOIN_TITLE_CREATEWITH": "字串組合", "TEXT_JOIN_TOOLTIP": "通過連接任意數量的項目來建立一串文字。", "TEXT_CREATE_JOIN_TITLE_JOIN": "加入", @@ -209,7 +209,7 @@ "TEXT_APPEND_TITLE": "至 %1 套用文字 %2", "TEXT_APPEND_TOOLTIP": "添加一些文字到變數「%1」之後。", "TEXT_LENGTH_TITLE": "%1的長度", - "TEXT_LENGTH_TOOLTIP": "返回這串文字的字元數(包含空格)。", + "TEXT_LENGTH_TOOLTIP": "返回這串文字的字母數(包含空格)。", "TEXT_ISEMPTY_TITLE": "%1 為空", "TEXT_ISEMPTY_TOOLTIP": "如果提供的字串為空,則返回 true。", "TEXT_INDEXOF_TOOLTIP": "在字串1中檢索是否有包含字串2,如果有,返回從頭/倒數算起的索引值。如果沒有則返回 %1。", @@ -217,20 +217,20 @@ "TEXT_INDEXOF_OPERATOR_FIRST": "從 最前面 索引字串", "TEXT_INDEXOF_OPERATOR_LAST": "從 最後面 索引字串", "TEXT_CHARAT_TITLE": "在文字 %1 %2", - "TEXT_CHARAT_FROM_START": "取得 字元 #", - "TEXT_CHARAT_FROM_END": "取得倒數第#字元", - "TEXT_CHARAT_FIRST": "擷取首字元", - "TEXT_CHARAT_LAST": "取得 最後一個字元", - "TEXT_CHARAT_RANDOM": "取得 任意字元", - "TEXT_CHARAT_TOOLTIP": "返回位於指定位置的字元。", + "TEXT_CHARAT_FROM_START": "取得第 # 個字母", + "TEXT_CHARAT_FROM_END": "取得倒數第 # 個字母", + "TEXT_CHARAT_FIRST": "取得第一個字母", + "TEXT_CHARAT_LAST": "取得最後一個字母", + "TEXT_CHARAT_RANDOM": "取得隨機字母", + "TEXT_CHARAT_TOOLTIP": "回傳位於指定位置的字母。", "TEXT_GET_SUBSTRING_TOOLTIP": "返回指定的部分文字。", "TEXT_GET_SUBSTRING_INPUT_IN_TEXT": "在字串", - "TEXT_GET_SUBSTRING_START_FROM_START": "取得 字元 #", - "TEXT_GET_SUBSTRING_START_FROM_END": "取得 倒數第 # 個字元", - "TEXT_GET_SUBSTRING_START_FIRST": "取得首字元", - "TEXT_GET_SUBSTRING_END_FROM_START": "到 字元 #", - "TEXT_GET_SUBSTRING_END_FROM_END": "到倒數第#字元", - "TEXT_GET_SUBSTRING_END_LAST": "到尾字元", + "TEXT_GET_SUBSTRING_START_FROM_START": "取得子字串從第 # 個字母", + "TEXT_GET_SUBSTRING_START_FROM_END": "取得子字串從倒數第 # 個字母", + "TEXT_GET_SUBSTRING_START_FIRST": "取得子字串從第一個字母", + "TEXT_GET_SUBSTRING_END_FROM_START": "到第 # 個字母", + "TEXT_GET_SUBSTRING_END_FROM_END": "到倒數第 # 個字母", + "TEXT_GET_SUBSTRING_END_LAST": "到最後一個字母", "TEXT_CHANGECASE_TOOLTIP": "使用不同的大小寫複製這段文字。", "TEXT_CHANGECASE_OPERATOR_UPPERCASE": "轉成英文大寫", "TEXT_CHANGECASE_OPERATOR_LOWERCASE": "轉成英文小寫", diff --git a/msg/messages.js b/msg/messages.js index e29ed57f1..a313b269a 100644 --- a/msg/messages.js +++ b/msg/messages.js @@ -172,7 +172,7 @@ Blockly.Msg.VARIABLE_ALREADY_EXISTS_FOR_A_PARAMETER = 'A variable named "%1" alr // Variable deletion. /** @type {string} */ -/// confirm - Ask the user to confirm their deletion of multiple uses of a variable. +/// confirm - Ask the user to confirm their deletion of multiple uses of a variable. Blockly.Msg.DELETE_VARIABLE_CONFIRMATION = 'Delete %1 uses of the "%2" variable?'; /** @type {string} */ /// alert - Tell the user that they can't delete a variable because it's part of the definition of a function. @@ -670,7 +670,7 @@ Blockly.Msg.MATH_ONLIST_OPERATOR_MEDIAN = 'median of list'; /// tooltip - See [https://en.wikipedia.org/wiki/Median median https://en.wikipedia.org/wiki/Median median] for more information. Blockly.Msg.MATH_ONLIST_TOOLTIP_MEDIAN = 'Return the median number in the list.'; /** @type {string} */ -/// dropdown - This finds the most common numbers ([https://en.wikipedia.org/wiki/Mode_(statistics) modes]) in a list. For example, the modes of the list {1, 3, 9, 3, 9} are {3, 9}. +/// dropdown - This finds the most common numbers ([https://en.wikipedia.org/wiki/Mode_(statistics) modes]) in a list. For example, the modes of the list {1, 3, 9, 3, 9} are {3, 9}. Blockly.Msg.MATH_ONLIST_OPERATOR_MODE = 'modes of list'; /** @type {string} */ /// tooltip - See [https://en.wikipedia.org/wiki/Mode_(statistics) https://en.wikipedia.org/wiki/Mode_(statistics)] for more information. @@ -1578,7 +1578,7 @@ Blockly.Msg.PROCEDURES_CREATE_DO = 'Create "%1"'; Blockly.Msg.PROCEDURES_IFRETURN_TOOLTIP = 'If a value is true, then return a second value.'; /** @type {string} */ /// {{Optional}} url - Information about guard clauses. -Blockly.Msg.PROCEDURES_IFRETURN_HELPURL = 'http://c2.com/cgi/wiki?GuardClause'; +Blockly.Msg.PROCEDURES_IFRETURN_HELPURL = 'https://c2.com/cgi/wiki?GuardClause'; /** @type {string} */ /// warning - This appears if the user tries to use this block outside of a function definition. Blockly.Msg.PROCEDURES_IFRETURN_WARNING = 'Warning: This block may be used only within a function definition.'; diff --git a/package-lock.json b/package-lock.json index d9fdbeded..792268cf8 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,12 +1,12 @@ { "name": "blockly", - "version": "10.3.1", + "version": "10.4.0", "lockfileVersion": 3, "requires": true, "packages": { "": { "name": "blockly", - "version": "10.3.1", + "version": "10.4.0", "hasInstallScript": true, "license": "Apache-2.0", "dependencies": { @@ -26,7 +26,7 @@ "eslint": "^8.4.1", "eslint-config-google": "^0.14.0", "eslint-config-prettier": "^9.0.0", - "eslint-plugin-jsdoc": "^46.2.6", + "eslint-plugin-jsdoc": "^48.0.2", "glob": "^10.3.4", "google-closure-compiler": "^20230802.0.0", "gulp": "^4.0.2", @@ -45,7 +45,7 @@ "markdown-tables-to-json": "^0.1.7", "mocha": "^10.0.0", "patch-package": "^8.0.0", - "prettier": "3.1.0", + "prettier": "3.2.5", "readline-sync": "^1.4.10", "rimraf": "^5.0.0", "typescript": "^5.0.2", @@ -75,9 +75,9 @@ } }, "node_modules/@blockly/block-test": { - "version": "5.0.3", - "resolved": "https://registry.npmjs.org/@blockly/block-test/-/block-test-5.0.3.tgz", - "integrity": "sha512-iY8aIh+rTJGZMT/mvEeqjRXAlN7jOso/kQsQ5BrdyH+8UEQ+K4IJdjyFou18ydktnfpeXnBkqw6P4wzc/0jtcA==", + "version": "5.0.4", + "resolved": "https://registry.npmjs.org/@blockly/block-test/-/block-test-5.0.4.tgz", + "integrity": "sha512-3u7z9Xd+W1eCcknqVsmUYnDvS2FIzce2IdGuRC1lst2XIQQ59q2wkUqGg4+Z2Arr3hk/TpIlHn2YLrGPkvqkug==", "dev": true, "engines": { "node": ">=8.17.0" @@ -87,16 +87,16 @@ } }, "node_modules/@blockly/dev-tools": { - "version": "7.1.3", - "resolved": "https://registry.npmjs.org/@blockly/dev-tools/-/dev-tools-7.1.3.tgz", - "integrity": "sha512-KdC9ZUwnuzqYNaxAHgj2pFEgtCMhf/w8u5wNHUScReLWXPqc9wQSIUCq6QsDbN1EiT6BaL8dYwqcHoLl+fgUXA==", + "version": "7.1.5", + "resolved": "https://registry.npmjs.org/@blockly/dev-tools/-/dev-tools-7.1.5.tgz", + "integrity": "sha512-eNpi+yknoR2RXzYUOE4Owp5XiY9Qm/FH+BOGhd5WrDyK3/LGQ4Yp0NOBO1tWN+Kbjxe19k6yhA50kX7YkDad/w==", "dev": true, "dependencies": { - "@blockly/block-test": "^5.0.3", - "@blockly/theme-dark": "^6.0.4", - "@blockly/theme-deuteranopia": "^5.0.4", - "@blockly/theme-highcontrast": "^5.0.4", - "@blockly/theme-tritanopia": "^5.0.4", + "@blockly/block-test": "^5.0.4", + "@blockly/theme-dark": "^6.0.5", + "@blockly/theme-deuteranopia": "^5.0.5", + "@blockly/theme-highcontrast": "^5.0.5", + "@blockly/theme-tritanopia": "^5.0.5", "chai": "^4.2.0", "dat.gui": "^0.7.7", "lodash.assign": "^4.2.0", @@ -112,9 +112,9 @@ } }, "node_modules/@blockly/theme-dark": { - "version": "6.0.4", - "resolved": "https://registry.npmjs.org/@blockly/theme-dark/-/theme-dark-6.0.4.tgz", - "integrity": "sha512-G0A+9cMlMiv0/H6/FjQTK+tsqXLmR/FGAfO4gByaTt/ocBmOFeoSlQZdTI23L9ZEvnfO11ZaqH6pqUxY0GSusw==", + "version": "6.0.5", + "resolved": "https://registry.npmjs.org/@blockly/theme-dark/-/theme-dark-6.0.5.tgz", + "integrity": "sha512-6vftqOY4ZfwqiAUh2lR12TL16t+7UcmiGVYOBSs4dj1emP89UEO7EMaj0RQ+m0BsV9IHsf2fN6iKZu1gWkmnnA==", "dev": true, "engines": { "node": ">=8.17.0" @@ -124,9 +124,9 @@ } }, "node_modules/@blockly/theme-deuteranopia": { - "version": "5.0.4", - "resolved": "https://registry.npmjs.org/@blockly/theme-deuteranopia/-/theme-deuteranopia-5.0.4.tgz", - "integrity": "sha512-QzJN/2MFtXAdeGFT77fVnQAHYVAn3+HBPI9UPvzhu2l6Tod9v6pnrQ51+8Xiw/wGTklFeZzModJkajCnb6RDCg==", + "version": "5.0.5", + "resolved": "https://registry.npmjs.org/@blockly/theme-deuteranopia/-/theme-deuteranopia-5.0.5.tgz", + "integrity": "sha512-Eqr3JbIch4Uyi3awWXq0vtGy5LL4cknkBH4VjUi73w9Xdiytt1LgoWJD23NBtKcP4M31iDWV+8fdPK4R1tUVcg==", "dev": true, "engines": { "node": ">=8.17.0" @@ -136,9 +136,9 @@ } }, "node_modules/@blockly/theme-highcontrast": { - "version": "5.0.4", - "resolved": "https://registry.npmjs.org/@blockly/theme-highcontrast/-/theme-highcontrast-5.0.4.tgz", - "integrity": "sha512-JFSYmEzGeh3KdUqZLScktdFRTxgYoTqLWIeBLOWEU1AFoFMUbKN8G2ChW3Rzq5snbu3pHNBsisswMEp/vuRbUw==", + "version": "5.0.5", + "resolved": "https://registry.npmjs.org/@blockly/theme-highcontrast/-/theme-highcontrast-5.0.5.tgz", + "integrity": "sha512-5pi7urLW7UNZhAoDbsb7C0vqFGHEeWi7pp1+OyFSmB+xMNkcVv1Es4X35QQCuUmM6FXfCFeqoDH+N/DYNDHHjg==", "dev": true, "engines": { "node": ">=8.17.0" @@ -148,9 +148,9 @@ } }, "node_modules/@blockly/theme-modern": { - "version": "5.0.4", - "resolved": "https://registry.npmjs.org/@blockly/theme-modern/-/theme-modern-5.0.4.tgz", - "integrity": "sha512-AamkRgc5XDvENdEBol8GVUebBooAaHP/yGfixVQ3Oj48xErKisUbLuCpZ4emvahewGghJ55HVXSJKdLQ2n0h8w==", + "version": "5.0.5", + "resolved": "https://registry.npmjs.org/@blockly/theme-modern/-/theme-modern-5.0.5.tgz", + "integrity": "sha512-rbVOGxKHAatzHI6Yhy9lJbIRPzAW2Xgf+N1U1KSkyVmUziLKKaNKwwYvnOSx4MmoDD49SrZMdUgT8G+VBLFhYw==", "dev": true, "engines": { "node": ">=8.17.0" @@ -160,9 +160,9 @@ } }, "node_modules/@blockly/theme-tritanopia": { - "version": "5.0.4", - "resolved": "https://registry.npmjs.org/@blockly/theme-tritanopia/-/theme-tritanopia-5.0.4.tgz", - "integrity": "sha512-ex4WlFLidLNY0Zpvf18ZOnBrQ7HRnupvumpajVmpEVhnm1O7h6H6IdHCgBvL4hFb72q+7/xKxAkxG0+lSfih1w==", + "version": "5.0.5", + "resolved": "https://registry.npmjs.org/@blockly/theme-tritanopia/-/theme-tritanopia-5.0.5.tgz", + "integrity": "sha512-vVFMwvdreQoPDR8y6/5ymOoVYK/kE7zcH3Ra0NCEG4w/CBOlEYMYpNnCkpmM8HTjQj4fvDSTwh2HybiHMlfLrQ==", "dev": true, "engines": { "node": ">=8.17.0" @@ -233,9 +233,9 @@ } }, "node_modules/@eslint/js": { - "version": "8.55.0", - "resolved": "https://registry.npmjs.org/@eslint/js/-/js-8.55.0.tgz", - "integrity": "sha512-qQfo2mxH5yVom1kacMtZZJFVdW+E70mqHMJvVg6WTLo+VBuQJ4TojZlfWBjK0ve5BdEeNAVxOsl/nvNMpJOaJA==", + "version": "8.56.0", + "resolved": "https://registry.npmjs.org/@eslint/js/-/js-8.56.0.tgz", + "integrity": "sha512-gMsVel9D7f2HLkBma9VbtzZRehRogVRfbr++f06nL2vnCGCNlzOD+/MUov/F4p8myyAHspEhVobgjpX64q5m6A==", "dev": true, "engines": { "node": "^12.22.0 || ^14.17.0 || >=16.0.0" @@ -394,9 +394,9 @@ } }, "node_modules/@hyperjump/json-schema": { - "version": "1.6.6", - "resolved": "https://registry.npmjs.org/@hyperjump/json-schema/-/json-schema-1.6.6.tgz", - "integrity": "sha512-LuZ+erTRmAzppvBT3cx7orfK5AF7wVxdHd850KM06i3RZbcDX+EWD65+YIojQ7uNbHeiqCdcQmIxhNNUN9riNQ==", + "version": "1.6.7", + "resolved": "https://registry.npmjs.org/@hyperjump/json-schema/-/json-schema-1.6.7.tgz", + "integrity": "sha512-6ufO5Iov85FBXQ1a//7sQDwzZRoyEMR1MD7Te6k00DvApvj1/x3k/S1RcPmmPCCuj7BDxHVixu4qBTM6sBsmBA==", "dev": true, "dependencies": { "@hyperjump/json-pointer": "^1.0.0", @@ -536,14 +536,14 @@ } }, "node_modules/@microsoft/api-documenter": { - "version": "7.23.12", - "resolved": "https://registry.npmjs.org/@microsoft/api-documenter/-/api-documenter-7.23.12.tgz", - "integrity": "sha512-ZFQGHNs8fSe3KoSCNa+jt/HLTN8IdTRGd0TZqmSeHpz2cSvUYHJeyQKhv8s7yi2flr1LezBq5/ig65ITZPSSqw==", + "version": "7.23.14", + "resolved": "https://registry.npmjs.org/@microsoft/api-documenter/-/api-documenter-7.23.14.tgz", + "integrity": "sha512-D9cX3sS/6xN8SFbrR6I1ZTKvGl5UIPFZKYqTLg8YBUKJtFbUSDLrzRLWOcjxwxjnu+gCHAHyaNpG4G//CQivLw==", "dev": true, "dependencies": { - "@microsoft/api-extractor-model": "7.28.2", + "@microsoft/api-extractor-model": "7.28.3", "@microsoft/tsdoc": "0.14.2", - "@rushstack/node-core-library": "3.61.0", + "@rushstack/node-core-library": "3.62.0", "@rushstack/ts-command-line": "4.17.1", "colors": "~1.2.1", "js-yaml": "~3.13.1", @@ -576,15 +576,15 @@ } }, "node_modules/@microsoft/api-extractor": { - "version": "7.38.3", - "resolved": "https://registry.npmjs.org/@microsoft/api-extractor/-/api-extractor-7.38.3.tgz", - "integrity": "sha512-xt9iYyC5f39281j77JTA9C3ISJpW1XWkCcnw+2vM78CPnro6KhPfwQdPDfwS5JCPNuq0grm8cMdPUOPvrchDWw==", + "version": "7.38.5", + "resolved": "https://registry.npmjs.org/@microsoft/api-extractor/-/api-extractor-7.38.5.tgz", + "integrity": "sha512-c/w2zfqBcBJxaCzpJNvFoouWewcYrUOfeu5ZkWCCIXTF9a/gXM85RGevEzlMAIEGM/kssAAZSXRJIZ3Q5vLFow==", "dev": true, "dependencies": { - "@microsoft/api-extractor-model": "7.28.2", + "@microsoft/api-extractor-model": "7.28.3", "@microsoft/tsdoc": "0.14.2", "@microsoft/tsdoc-config": "~0.16.1", - "@rushstack/node-core-library": "3.61.0", + "@rushstack/node-core-library": "3.62.0", "@rushstack/rig-package": "0.5.1", "@rushstack/ts-command-line": "4.17.1", "colors": "~1.2.1", @@ -599,14 +599,14 @@ } }, "node_modules/@microsoft/api-extractor-model": { - "version": "7.28.2", - "resolved": "https://registry.npmjs.org/@microsoft/api-extractor-model/-/api-extractor-model-7.28.2.tgz", - "integrity": "sha512-vkojrM2fo3q4n4oPh4uUZdjJ2DxQ2+RnDQL/xhTWSRUNPF6P4QyrvY357HBxbnltKcYu+nNNolVqc6TIGQ73Ig==", + "version": "7.28.3", + "resolved": "https://registry.npmjs.org/@microsoft/api-extractor-model/-/api-extractor-model-7.28.3.tgz", + "integrity": "sha512-wT/kB2oDbdZXITyDh2SQLzaWwTOFbV326fP0pUwNW00WeliARs0qjmXBWmGWardEzp2U3/axkO3Lboqun6vrig==", "dev": true, "dependencies": { "@microsoft/tsdoc": "0.14.2", "@microsoft/tsdoc-config": "~0.16.1", - "@rushstack/node-core-library": "3.61.0" + "@rushstack/node-core-library": "3.62.0" } }, "node_modules/@microsoft/api-extractor/node_modules/source-map": { @@ -769,9 +769,9 @@ } }, "node_modules/@rushstack/node-core-library": { - "version": "3.61.0", - "resolved": "https://registry.npmjs.org/@rushstack/node-core-library/-/node-core-library-3.61.0.tgz", - "integrity": "sha512-tdOjdErme+/YOu4gPed3sFS72GhtWCgNV9oDsHDnoLY5oDfwjKUc9Z+JOZZ37uAxcm/OCahDHfuu2ugqrfWAVQ==", + "version": "3.62.0", + "resolved": "https://registry.npmjs.org/@rushstack/node-core-library/-/node-core-library-3.62.0.tgz", + "integrity": "sha512-88aJn2h8UpSvdwuDXBv1/v1heM6GnBf3RjEy6ZPP7UnzHNCqOHA2Ut+ScYUbXcqIdfew9JlTAe3g+cnX9xQ/Aw==", "dev": true, "dependencies": { "colors": "~1.2.1", @@ -941,9 +941,9 @@ "dev": true }, "node_modules/@types/semver": { - "version": "7.5.5", - "resolved": "https://registry.npmjs.org/@types/semver/-/semver-7.5.5.tgz", - "integrity": "sha512-+d+WYC1BxJ6yVOgUgzK8gWvp5qF8ssV5r4nsDcZWKRWcDQLQ619tvWAxJQYGgBrO1MnLJC7a5GtiYsAoQ47dJg==", + "version": "7.5.6", + "resolved": "https://registry.npmjs.org/@types/semver/-/semver-7.5.6.tgz", + "integrity": "sha512-dn1l8LaMea/IjDoHNd9J52uBbInB796CDffS6VdIxvqYCPSG0V0DzHp76GpaWnlhg88uYyPbXCDIowa86ybd5A==", "dev": true }, "node_modules/@types/vinyl": { @@ -982,16 +982,16 @@ } }, "node_modules/@typescript-eslint/eslint-plugin": { - "version": "6.10.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-6.10.0.tgz", - "integrity": "sha512-uoLj4g2OTL8rfUQVx2AFO1hp/zja1wABJq77P6IclQs6I/m9GLrm7jCdgzZkvWdDCQf1uEvoa8s8CupsgWQgVg==", + "version": "6.19.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-6.19.0.tgz", + "integrity": "sha512-DUCUkQNklCQYnrBSSikjVChdc84/vMPDQSgJTHBZ64G9bA9w0Crc0rd2diujKbTdp6w2J47qkeHQLoi0rpLCdg==", "dev": true, "dependencies": { "@eslint-community/regexpp": "^4.5.1", - "@typescript-eslint/scope-manager": "6.10.0", - "@typescript-eslint/type-utils": "6.10.0", - "@typescript-eslint/utils": "6.10.0", - "@typescript-eslint/visitor-keys": "6.10.0", + "@typescript-eslint/scope-manager": "6.19.0", + "@typescript-eslint/type-utils": "6.19.0", + "@typescript-eslint/utils": "6.19.0", + "@typescript-eslint/visitor-keys": "6.19.0", "debug": "^4.3.4", "graphemer": "^1.4.0", "ignore": "^5.2.4", @@ -1017,13 +1017,13 @@ } }, "node_modules/@typescript-eslint/eslint-plugin/node_modules/@typescript-eslint/scope-manager": { - "version": "6.10.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-6.10.0.tgz", - "integrity": "sha512-TN/plV7dzqqC2iPNf1KrxozDgZs53Gfgg5ZHyw8erd6jd5Ta/JIEcdCheXFt9b1NYb93a1wmIIVW/2gLkombDg==", + "version": "6.19.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-6.19.0.tgz", + "integrity": "sha512-dO1XMhV2ehBI6QN8Ufi7I10wmUovmLU0Oru3n5LVlM2JuzB4M+dVphCPLkVpKvGij2j/pHBWuJ9piuXx+BhzxQ==", "dev": true, "dependencies": { - "@typescript-eslint/types": "6.10.0", - "@typescript-eslint/visitor-keys": "6.10.0" + "@typescript-eslint/types": "6.19.0", + "@typescript-eslint/visitor-keys": "6.19.0" }, "engines": { "node": "^16.0.0 || >=18.0.0" @@ -1034,9 +1034,9 @@ } }, "node_modules/@typescript-eslint/eslint-plugin/node_modules/@typescript-eslint/types": { - "version": "6.10.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-6.10.0.tgz", - "integrity": "sha512-36Fq1PWh9dusgo3vH7qmQAj5/AZqARky1Wi6WpINxB6SkQdY5vQoT2/7rW7uBIsPDcvvGCLi4r10p0OJ7ITAeg==", + "version": "6.19.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-6.19.0.tgz", + "integrity": "sha512-lFviGV/vYhOy3m8BJ/nAKoAyNhInTdXpftonhWle66XHAtT1ouBlkjL496b5H5hb8dWXHwtypTqgtb/DEa+j5A==", "dev": true, "engines": { "node": "^16.0.0 || >=18.0.0" @@ -1047,12 +1047,12 @@ } }, "node_modules/@typescript-eslint/eslint-plugin/node_modules/@typescript-eslint/visitor-keys": { - "version": "6.10.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-6.10.0.tgz", - "integrity": "sha512-xMGluxQIEtOM7bqFCo+rCMh5fqI+ZxV5RUUOa29iVPz1OgCZrtc7rFnz5cLUazlkPKYqX+75iuDq7m0HQ48nCg==", + "version": "6.19.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-6.19.0.tgz", + "integrity": "sha512-hZaUCORLgubBvtGpp1JEFEazcuEdfxta9j4iUwdSAr7mEsYYAp3EAUyCZk3VEEqGj6W+AV4uWyrDGtrlawAsgQ==", "dev": true, "dependencies": { - "@typescript-eslint/types": "6.10.0", + "@typescript-eslint/types": "6.19.0", "eslint-visitor-keys": "^3.4.1" }, "engines": { @@ -1111,13 +1111,13 @@ } }, "node_modules/@typescript-eslint/type-utils": { - "version": "6.10.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-6.10.0.tgz", - "integrity": "sha512-wYpPs3hgTFblMYwbYWPT3eZtaDOjbLyIYuqpwuLBBqhLiuvJ+9sEp2gNRJEtR5N/c9G1uTtQQL5AhV0fEPJYcg==", + "version": "6.19.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-6.19.0.tgz", + "integrity": "sha512-mcvS6WSWbjiSxKCwBcXtOM5pRkPQ6kcDds/juxcy/727IQr3xMEcwr/YLHW2A2+Fp5ql6khjbKBzOyjuPqGi/w==", "dev": true, "dependencies": { - "@typescript-eslint/typescript-estree": "6.10.0", - "@typescript-eslint/utils": "6.10.0", + "@typescript-eslint/typescript-estree": "6.19.0", + "@typescript-eslint/utils": "6.19.0", "debug": "^4.3.4", "ts-api-utils": "^1.0.1" }, @@ -1138,9 +1138,9 @@ } }, "node_modules/@typescript-eslint/type-utils/node_modules/@typescript-eslint/types": { - "version": "6.10.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-6.10.0.tgz", - "integrity": "sha512-36Fq1PWh9dusgo3vH7qmQAj5/AZqARky1Wi6WpINxB6SkQdY5vQoT2/7rW7uBIsPDcvvGCLi4r10p0OJ7ITAeg==", + "version": "6.19.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-6.19.0.tgz", + "integrity": "sha512-lFviGV/vYhOy3m8BJ/nAKoAyNhInTdXpftonhWle66XHAtT1ouBlkjL496b5H5hb8dWXHwtypTqgtb/DEa+j5A==", "dev": true, "engines": { "node": "^16.0.0 || >=18.0.0" @@ -1151,16 +1151,17 @@ } }, "node_modules/@typescript-eslint/type-utils/node_modules/@typescript-eslint/typescript-estree": { - "version": "6.10.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-6.10.0.tgz", - "integrity": "sha512-ek0Eyuy6P15LJVeghbWhSrBCj/vJpPXXR+EpaRZqou7achUWL8IdYnMSC5WHAeTWswYQuP2hAZgij/bC9fanBg==", + "version": "6.19.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-6.19.0.tgz", + "integrity": "sha512-o/zefXIbbLBZ8YJ51NlkSAt2BamrK6XOmuxSR3hynMIzzyMY33KuJ9vuMdFSXW+H0tVvdF9qBPTHA91HDb4BIQ==", "dev": true, "dependencies": { - "@typescript-eslint/types": "6.10.0", - "@typescript-eslint/visitor-keys": "6.10.0", + "@typescript-eslint/types": "6.19.0", + "@typescript-eslint/visitor-keys": "6.19.0", "debug": "^4.3.4", "globby": "^11.1.0", "is-glob": "^4.0.3", + "minimatch": "9.0.3", "semver": "^7.5.4", "ts-api-utils": "^1.0.1" }, @@ -1178,12 +1179,12 @@ } }, "node_modules/@typescript-eslint/type-utils/node_modules/@typescript-eslint/visitor-keys": { - "version": "6.10.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-6.10.0.tgz", - "integrity": "sha512-xMGluxQIEtOM7bqFCo+rCMh5fqI+ZxV5RUUOa29iVPz1OgCZrtc7rFnz5cLUazlkPKYqX+75iuDq7m0HQ48nCg==", + "version": "6.19.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-6.19.0.tgz", + "integrity": "sha512-hZaUCORLgubBvtGpp1JEFEazcuEdfxta9j4iUwdSAr7mEsYYAp3EAUyCZk3VEEqGj6W+AV4uWyrDGtrlawAsgQ==", "dev": true, "dependencies": { - "@typescript-eslint/types": "6.10.0", + "@typescript-eslint/types": "6.19.0", "eslint-visitor-keys": "^3.4.1" }, "engines": { @@ -1194,6 +1195,30 @@ "url": "https://opencollective.com/typescript-eslint" } }, + "node_modules/@typescript-eslint/type-utils/node_modules/brace-expansion": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz", + "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==", + "dev": true, + "dependencies": { + "balanced-match": "^1.0.0" + } + }, + "node_modules/@typescript-eslint/type-utils/node_modules/minimatch": { + "version": "9.0.3", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.3.tgz", + "integrity": "sha512-RHiac9mvaRw0x3AYRgDC1CxAP7HTcNrrECeA8YYJeWnpo+2Q5CegtZjaotWTWxDG3UeGA1coE05iH1mPjT/2mg==", + "dev": true, + "dependencies": { + "brace-expansion": "^2.0.1" + }, + "engines": { + "node": ">=16 || 14 >=14.17" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, "node_modules/@typescript-eslint/types": { "version": "6.1.0", "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-6.1.0.tgz", @@ -1237,17 +1262,17 @@ } }, "node_modules/@typescript-eslint/utils": { - "version": "6.10.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-6.10.0.tgz", - "integrity": "sha512-v+pJ1/RcVyRc0o4wAGux9x42RHmAjIGzPRo538Z8M1tVx6HOnoQBCX/NoadHQlZeC+QO2yr4nNSFWOoraZCAyg==", + "version": "6.19.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-6.19.0.tgz", + "integrity": "sha512-QR41YXySiuN++/dC9UArYOg4X86OAYP83OWTewpVx5ct1IZhjjgTLocj7QNxGhWoTqknsgpl7L+hGygCO+sdYw==", "dev": true, "dependencies": { "@eslint-community/eslint-utils": "^4.4.0", "@types/json-schema": "^7.0.12", "@types/semver": "^7.5.0", - "@typescript-eslint/scope-manager": "6.10.0", - "@typescript-eslint/types": "6.10.0", - "@typescript-eslint/typescript-estree": "6.10.0", + "@typescript-eslint/scope-manager": "6.19.0", + "@typescript-eslint/types": "6.19.0", + "@typescript-eslint/typescript-estree": "6.19.0", "semver": "^7.5.4" }, "engines": { @@ -1262,13 +1287,13 @@ } }, "node_modules/@typescript-eslint/utils/node_modules/@typescript-eslint/scope-manager": { - "version": "6.10.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-6.10.0.tgz", - "integrity": "sha512-TN/plV7dzqqC2iPNf1KrxozDgZs53Gfgg5ZHyw8erd6jd5Ta/JIEcdCheXFt9b1NYb93a1wmIIVW/2gLkombDg==", + "version": "6.19.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-6.19.0.tgz", + "integrity": "sha512-dO1XMhV2ehBI6QN8Ufi7I10wmUovmLU0Oru3n5LVlM2JuzB4M+dVphCPLkVpKvGij2j/pHBWuJ9piuXx+BhzxQ==", "dev": true, "dependencies": { - "@typescript-eslint/types": "6.10.0", - "@typescript-eslint/visitor-keys": "6.10.0" + "@typescript-eslint/types": "6.19.0", + "@typescript-eslint/visitor-keys": "6.19.0" }, "engines": { "node": "^16.0.0 || >=18.0.0" @@ -1279,9 +1304,9 @@ } }, "node_modules/@typescript-eslint/utils/node_modules/@typescript-eslint/types": { - "version": "6.10.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-6.10.0.tgz", - "integrity": "sha512-36Fq1PWh9dusgo3vH7qmQAj5/AZqARky1Wi6WpINxB6SkQdY5vQoT2/7rW7uBIsPDcvvGCLi4r10p0OJ7ITAeg==", + "version": "6.19.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-6.19.0.tgz", + "integrity": "sha512-lFviGV/vYhOy3m8BJ/nAKoAyNhInTdXpftonhWle66XHAtT1ouBlkjL496b5H5hb8dWXHwtypTqgtb/DEa+j5A==", "dev": true, "engines": { "node": "^16.0.0 || >=18.0.0" @@ -1292,16 +1317,17 @@ } }, "node_modules/@typescript-eslint/utils/node_modules/@typescript-eslint/typescript-estree": { - "version": "6.10.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-6.10.0.tgz", - "integrity": "sha512-ek0Eyuy6P15LJVeghbWhSrBCj/vJpPXXR+EpaRZqou7achUWL8IdYnMSC5WHAeTWswYQuP2hAZgij/bC9fanBg==", + "version": "6.19.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-6.19.0.tgz", + "integrity": "sha512-o/zefXIbbLBZ8YJ51NlkSAt2BamrK6XOmuxSR3hynMIzzyMY33KuJ9vuMdFSXW+H0tVvdF9qBPTHA91HDb4BIQ==", "dev": true, "dependencies": { - "@typescript-eslint/types": "6.10.0", - "@typescript-eslint/visitor-keys": "6.10.0", + "@typescript-eslint/types": "6.19.0", + "@typescript-eslint/visitor-keys": "6.19.0", "debug": "^4.3.4", "globby": "^11.1.0", "is-glob": "^4.0.3", + "minimatch": "9.0.3", "semver": "^7.5.4", "ts-api-utils": "^1.0.1" }, @@ -1319,12 +1345,12 @@ } }, "node_modules/@typescript-eslint/utils/node_modules/@typescript-eslint/visitor-keys": { - "version": "6.10.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-6.10.0.tgz", - "integrity": "sha512-xMGluxQIEtOM7bqFCo+rCMh5fqI+ZxV5RUUOa29iVPz1OgCZrtc7rFnz5cLUazlkPKYqX+75iuDq7m0HQ48nCg==", + "version": "6.19.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-6.19.0.tgz", + "integrity": "sha512-hZaUCORLgubBvtGpp1JEFEazcuEdfxta9j4iUwdSAr7mEsYYAp3EAUyCZk3VEEqGj6W+AV4uWyrDGtrlawAsgQ==", "dev": true, "dependencies": { - "@typescript-eslint/types": "6.10.0", + "@typescript-eslint/types": "6.19.0", "eslint-visitor-keys": "^3.4.1" }, "engines": { @@ -1335,6 +1361,30 @@ "url": "https://opencollective.com/typescript-eslint" } }, + "node_modules/@typescript-eslint/utils/node_modules/brace-expansion": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz", + "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==", + "dev": true, + "dependencies": { + "balanced-match": "^1.0.0" + } + }, + "node_modules/@typescript-eslint/utils/node_modules/minimatch": { + "version": "9.0.3", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.3.tgz", + "integrity": "sha512-RHiac9mvaRw0x3AYRgDC1CxAP7HTcNrrECeA8YYJeWnpo+2Q5CegtZjaotWTWxDG3UeGA1coE05iH1mPjT/2mg==", + "dev": true, + "dependencies": { + "brace-expansion": "^2.0.1" + }, + "engines": { + "node": ">=16 || 14 >=14.17" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, "node_modules/@typescript-eslint/visitor-keys": { "version": "6.1.0", "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-6.1.0.tgz", @@ -1360,18 +1410,18 @@ "dev": true }, "node_modules/@wdio/config": { - "version": "8.24.6", - "resolved": "https://registry.npmjs.org/@wdio/config/-/config-8.24.6.tgz", - "integrity": "sha512-ZFmd6rB1kgL4k/SjLXbtFTCxvxSf1qzdt/losiTqkqFBYznkTRUBGSoGaVTlkMtHAReiVSK92sICc15JWaCdEA==", + "version": "8.29.1", + "resolved": "https://registry.npmjs.org/@wdio/config/-/config-8.29.1.tgz", + "integrity": "sha512-zNUac4lM429HDKAitO+fdlwUH1ACQU8lww+DNVgUyuEb86xgVdTqHeiJr/3kOMJAq9IATeE7mDtYyyn6HPm1JA==", "dev": true, "dependencies": { - "@wdio/logger": "8.16.17", - "@wdio/types": "8.24.2", - "@wdio/utils": "8.24.6", + "@wdio/logger": "8.28.0", + "@wdio/types": "8.29.1", + "@wdio/utils": "8.29.1", "decamelize": "^6.0.0", "deepmerge-ts": "^5.0.0", "glob": "^10.2.2", - "import-meta-resolve": "^3.0.0" + "import-meta-resolve": "^4.0.0" }, "engines": { "node": "^16.13 || >=18" @@ -1390,9 +1440,9 @@ } }, "node_modules/@wdio/logger": { - "version": "8.16.17", - "resolved": "https://registry.npmjs.org/@wdio/logger/-/logger-8.16.17.tgz", - "integrity": "sha512-zeQ41z3T+b4IsrriZZipayXxLNDuGsm7TdExaviNGojPVrIsQUCSd/FvlLHM32b7ZrMyInHenu/zx1cjAZO71g==", + "version": "8.28.0", + "resolved": "https://registry.npmjs.org/@wdio/logger/-/logger-8.28.0.tgz", + "integrity": "sha512-/s6zNCqwy1hoc+K4SJypis0Ud0dlJ+urOelJFO1x0G0rwDRWyFiUP6ijTaCcFxAm29jYEcEPWijl2xkVIHwOyA==", "dev": true, "dependencies": { "chalk": "^5.1.2", @@ -1444,15 +1494,15 @@ } }, "node_modules/@wdio/protocols": { - "version": "8.23.0", - "resolved": "https://registry.npmjs.org/@wdio/protocols/-/protocols-8.23.0.tgz", - "integrity": "sha512-2XTzD+lqQP3g8BWn+Bn5BTFzjHqzZNwq7DjlYrb27Bq8nOA+1DEcj3WzQ6V6CktTnKI/LAYKA1IFAF//Azrp/Q==", + "version": "8.24.12", + "resolved": "https://registry.npmjs.org/@wdio/protocols/-/protocols-8.24.12.tgz", + "integrity": "sha512-QnVj3FkapmVD3h2zoZk+ZQ8gevSj9D9MiIQIy8eOnY4FAneYZ9R9GvoW+mgNcCZO8S8++S/jZHetR8n+8Q808g==", "dev": true }, "node_modules/@wdio/repl": { - "version": "8.23.1", - "resolved": "https://registry.npmjs.org/@wdio/repl/-/repl-8.23.1.tgz", - "integrity": "sha512-u6zG2cgBm67V5/WlQzadWqLGXs3moH8MOsgoljULQncelSBBZGZ5DyLB4p7jKcUAsKtMjgmFQmIvpQoqmyvdfg==", + "version": "8.24.12", + "resolved": "https://registry.npmjs.org/@wdio/repl/-/repl-8.24.12.tgz", + "integrity": "sha512-321F3sWafnlw93uRTSjEBVuvWCxTkWNDs7ektQS15drrroL3TMeFOynu4rDrIz0jXD9Vas0HCD2Tq/P0uxFLdw==", "dev": true, "dependencies": { "@types/node": "^20.1.0" @@ -1462,9 +1512,9 @@ } }, "node_modules/@wdio/types": { - "version": "8.24.2", - "resolved": "https://registry.npmjs.org/@wdio/types/-/types-8.24.2.tgz", - "integrity": "sha512-x7iWF5NM8NfVxziGwLdQ+3sstgSxRoqfmmFEDTDps0oFrN5CgkqcoLkqXJ5u166gvpxpEq0gxZwxkbPC/Lp0cw==", + "version": "8.29.1", + "resolved": "https://registry.npmjs.org/@wdio/types/-/types-8.29.1.tgz", + "integrity": "sha512-rZYzu+sK8zY1PjCEWxNu4ELJPYKDZRn7HFcYNgR122ylHygfldwkb5TioI6Pn311hQH/S+663KEeoq//Jb0f8A==", "dev": true, "dependencies": { "@types/node": "^20.1.0" @@ -1474,21 +1524,20 @@ } }, "node_modules/@wdio/utils": { - "version": "8.24.6", - "resolved": "https://registry.npmjs.org/@wdio/utils/-/utils-8.24.6.tgz", - "integrity": "sha512-qwcshLH9iKnhK0jXoXjPw3G02UhyShT0I+ljC0hMybJEBsra92TYFa47Cp6n1fdvM3+/BTuhsgtzRz0anObicQ==", + "version": "8.29.1", + "resolved": "https://registry.npmjs.org/@wdio/utils/-/utils-8.29.1.tgz", + "integrity": "sha512-Dm91DKL/ZKeZ2QogWT8Twv0p+slEgKyB/5x9/kcCG0Q2nNa+tZedTjOhryzrsPiWc+jTSBmjGE4katRXpJRFJg==", "dev": true, "dependencies": { "@puppeteer/browsers": "^1.6.0", - "@wdio/logger": "8.16.17", - "@wdio/types": "8.24.2", + "@wdio/logger": "8.28.0", + "@wdio/types": "8.29.1", "decamelize": "^6.0.0", "deepmerge-ts": "^5.1.0", "edgedriver": "^5.3.5", "geckodriver": "^4.2.0", "get-port": "^7.0.0", - "got": "^13.0.0", - "import-meta-resolve": "^3.0.0", + "import-meta-resolve": "^4.0.0", "locate-app": "^2.1.0", "safaridriver": "^0.1.0", "split2": "^4.2.0", @@ -1499,9 +1548,9 @@ } }, "node_modules/@wdio/utils/node_modules/@puppeteer/browsers": { - "version": "1.8.0", - "resolved": "https://registry.npmjs.org/@puppeteer/browsers/-/browsers-1.8.0.tgz", - "integrity": "sha512-TkRHIV6k2D8OlUe8RtG+5jgOF/H98Myx0M6AOafC8DdNVOFiBSFa5cpRDtpm8LXOa9sVwe0+e6Q3FC56X/DZfg==", + "version": "1.9.1", + "resolved": "https://registry.npmjs.org/@puppeteer/browsers/-/browsers-1.9.1.tgz", + "integrity": "sha512-PuvK6xZzGhKPvlx3fpfdM2kYY3P/hB1URtK8wA7XUJ6prn6pp22zvJHu48th0SGcHL9SutbPHrFuQgfXTFobWA==", "dev": true, "dependencies": { "debug": "4.3.4", @@ -3340,9 +3389,9 @@ } }, "node_modules/devtools-protocol": { - "version": "0.0.1213968", - "resolved": "https://registry.npmjs.org/devtools-protocol/-/devtools-protocol-0.0.1213968.tgz", - "integrity": "sha512-o4n/beY+3CcZwFctYapjGelKptR4AuQT5gXS1Kvgbig+ArwkxK7f8wDVuD1wsoswiJWCwV6OK+Qb7vhNzNmABQ==", + "version": "0.0.1249869", + "resolved": "https://registry.npmjs.org/devtools-protocol/-/devtools-protocol-0.0.1249869.tgz", + "integrity": "sha512-Ctp4hInA0BEavlUoRy9mhGq0i+JSo/AwVyX2EFgZmV1kYB+Zq+EMBAn52QWu6FbRr10hRb6pBl420upbp4++vg==", "dev": true }, "node_modules/dir-glob": { @@ -3485,9 +3534,9 @@ } }, "node_modules/edgedriver": { - "version": "5.3.8", - "resolved": "https://registry.npmjs.org/edgedriver/-/edgedriver-5.3.8.tgz", - "integrity": "sha512-FWLPDuwJDeGGgtmlqTXb4lQi/HV9yylLo1F9O1g9TLqSemA5T6xH28seUIfyleVirLFtDQyKNUxKsMhMT4IfnA==", + "version": "5.3.9", + "resolved": "https://registry.npmjs.org/edgedriver/-/edgedriver-5.3.9.tgz", + "integrity": "sha512-G0wNgFMFRDnFfKaXG2R6HiyVHqhKwdQ3EgoxW3wPlns2wKqem7F+HgkWBcevN7Vz0nN4AXtskID7/6jsYDXcKw==", "dev": true, "hasInstallScript": true, "dependencies": { @@ -3697,15 +3746,15 @@ } }, "node_modules/eslint": { - "version": "8.55.0", - "resolved": "https://registry.npmjs.org/eslint/-/eslint-8.55.0.tgz", - "integrity": "sha512-iyUUAM0PCKj5QpwGfmCAG9XXbZCWsqP/eWAWrG/W0umvjuLRBECwSFdt+rCntju0xEH7teIABPwXpahftIaTdA==", + "version": "8.56.0", + "resolved": "https://registry.npmjs.org/eslint/-/eslint-8.56.0.tgz", + "integrity": "sha512-Go19xM6T9puCOWntie1/P997aXxFsOi37JIHRWI514Hc6ZnaHGKY9xFhrU65RT6CcBEzZoGG1e6Nq+DT04ZtZQ==", "dev": true, "dependencies": { "@eslint-community/eslint-utils": "^4.2.0", "@eslint-community/regexpp": "^4.6.1", "@eslint/eslintrc": "^2.1.4", - "@eslint/js": "8.55.0", + "@eslint/js": "8.56.0", "@humanwhocodes/config-array": "^0.11.13", "@humanwhocodes/module-importer": "^1.0.1", "@nodelib/fs.walk": "^1.2.8", @@ -3764,9 +3813,9 @@ } }, "node_modules/eslint-config-prettier": { - "version": "9.0.0", - "resolved": "https://registry.npmjs.org/eslint-config-prettier/-/eslint-config-prettier-9.0.0.tgz", - "integrity": "sha512-IcJsTkJae2S35pRsRAwoCE+925rJJStOdkKnLVgtE+tEpqU0EVVM7OqrwxqgptKdX29NUwC82I5pXsGFIgSevw==", + "version": "9.1.0", + "resolved": "https://registry.npmjs.org/eslint-config-prettier/-/eslint-config-prettier-9.1.0.tgz", + "integrity": "sha512-NSWl5BFQWEPi1j4TjVNItzYV7dZXZ+wP6I6ZhrBGpChQhZRUaElihE9uRRkcbRnNb76UMKDF3r+WTmNcGPKsqw==", "dev": true, "bin": { "eslint-config-prettier": "bin/cli.js" @@ -3776,9 +3825,9 @@ } }, "node_modules/eslint-plugin-jsdoc": { - "version": "46.9.0", - "resolved": "https://registry.npmjs.org/eslint-plugin-jsdoc/-/eslint-plugin-jsdoc-46.9.0.tgz", - "integrity": "sha512-UQuEtbqLNkPf5Nr/6PPRCtr9xypXY+g8y/Q7gPa0YK7eDhh0y2lWprXRnaYbW7ACgIUvpDKy9X2bZqxtGzBG9Q==", + "version": "48.0.2", + "resolved": "https://registry.npmjs.org/eslint-plugin-jsdoc/-/eslint-plugin-jsdoc-48.0.2.tgz", + "integrity": "sha512-CBFl5Jc7+jlV36RwDm+PQ8Uw5r28pn2/uW/OaB+Gw5bFwn4Py/1eYMZ3hGf9S4meUFZ/sRvS+hVif2mRAp6WqQ==", "dev": true, "dependencies": { "@es-joy/jsdoccomment": "~0.41.0", @@ -3789,13 +3838,23 @@ "esquery": "^1.5.0", "is-builtin-module": "^3.2.1", "semver": "^7.5.4", - "spdx-expression-parse": "^3.0.1" + "spdx-expression-parse": "^4.0.0" }, "engines": { - "node": ">=16" + "node": ">=18" }, "peerDependencies": { - "eslint": "^7.0.0 || ^8.0.0" + "eslint": "^7.0.0 || ^8.0.0 || ^9.0.0" + } + }, + "node_modules/eslint-plugin-jsdoc/node_modules/spdx-expression-parse": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/spdx-expression-parse/-/spdx-expression-parse-4.0.0.tgz", + "integrity": "sha512-Clya5JIij/7C6bRR22+tnGXbc4VKlibKSVj2iHvVeX5iMW7s1SIQlqu699JkODJJIhh/pUu8L0/VLh8xflD+LQ==", + "dev": true, + "dependencies": { + "spdx-exceptions": "^2.1.0", + "spdx-license-ids": "^3.0.0" } }, "node_modules/eslint-scope": { @@ -4490,9 +4549,9 @@ } }, "node_modules/follow-redirects": { - "version": "1.15.2", - "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.15.2.tgz", - "integrity": "sha512-VQLG33o04KaQ8uYi2tVNbdrWp1QWxNNea+nmIB4EVM28v0hmP17z7aG1+wAkNzVq4KeXTq3221ye5qTJP91JwA==", + "version": "1.15.4", + "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.15.4.tgz", + "integrity": "sha512-Cr4D/5wlrb0z9dgERpUL3LrmPKVDsETIJhaCMeDfuFYcqa5bldGV6wBsAN6X/vxlXQtFBMrXdXxdL8CbDTGniw==", "dev": true, "funding": [ { @@ -4722,17 +4781,17 @@ "dev": true }, "node_modules/geckodriver": { - "version": "4.2.1", - "resolved": "https://registry.npmjs.org/geckodriver/-/geckodriver-4.2.1.tgz", - "integrity": "sha512-4m/CRk0OI8MaANRuFIahvOxYTSjlNAO2p9JmE14zxueknq6cdtB5M9UGRQ8R9aMV0bLGNVHHDnDXmoXdOwJfWg==", + "version": "4.3.1", + "resolved": "https://registry.npmjs.org/geckodriver/-/geckodriver-4.3.1.tgz", + "integrity": "sha512-ol7JLsj55o5k+z7YzeSy2mdJROXMAxIa+uzr3A1yEMr5HISqQOTslE3ZeARcxR4jpAY3fxmHM+sq32qbe/eXfA==", "dev": true, "hasInstallScript": true, "dependencies": { - "@wdio/logger": "^8.11.0", + "@wdio/logger": "^8.24.12", "decamelize": "^6.0.0", "http-proxy-agent": "^7.0.0", - "https-proxy-agent": "^7.0.1", - "node-fetch": "^3.3.1", + "https-proxy-agent": "^7.0.2", + "node-fetch": "^3.3.2", "tar-fs": "^3.0.4", "unzipper": "^0.10.14", "which": "^4.0.0" @@ -5491,9 +5550,9 @@ ] }, "node_modules/got": { - "version": "13.0.0", - "resolved": "https://registry.npmjs.org/got/-/got-13.0.0.tgz", - "integrity": "sha512-XfBk1CxOOScDcMr9O1yKkNaQyy865NbYs+F7dr4H0LZMVgCj2Le59k6PqbNHoL5ToeaEQUYh6c6yMfVcc6SJxA==", + "version": "12.6.1", + "resolved": "https://registry.npmjs.org/got/-/got-12.6.1.tgz", + "integrity": "sha512-mThBblvlAF1d4O5oqyvN+ZxLAYwIJK7bpMxgYqPD9okW0C3qm5FFn7k811QrcuEBwaogR3ngOFoCfs6mRv7teQ==", "dev": true, "dependencies": { "@sindresorhus/is": "^5.2.0", @@ -5509,7 +5568,7 @@ "responselike": "^3.0.0" }, "engines": { - "node": ">=16" + "node": ">=14.16" }, "funding": { "url": "https://github.com/sindresorhus/got?sponsor=1" @@ -6395,9 +6454,9 @@ } }, "node_modules/import-meta-resolve": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/import-meta-resolve/-/import-meta-resolve-3.1.1.tgz", - "integrity": "sha512-qeywsE/KC3w9Fd2ORrRDUw6nS/nLwZpXgfrOc2IILvZYnCaEMd+D56Vfg9k4G29gIeVi3XKql1RQatME8iYsiw==", + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/import-meta-resolve/-/import-meta-resolve-4.0.0.tgz", + "integrity": "sha512-okYUR7ZQPH+efeuMJGlq4f8ubUgO50kByRPyt/Cy1Io4PSRsPjxME+YlVaCOx+NIToW7hCsZNFJyTPFFKepRSA==", "dev": true, "funding": { "type": "github", @@ -7224,12 +7283,12 @@ } }, "node_modules/locate-app": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/locate-app/-/locate-app-2.1.0.tgz", - "integrity": "sha512-rcVo/iLUxrd9d0lrmregK/Z5Y5NCpSwf9KlMbPpOHmKmdxdQY1Fj8NDQ5QymJTryCsBLqwmniFv2f3JKbk9Bvg==", + "version": "2.2.14", + "resolved": "https://registry.npmjs.org/locate-app/-/locate-app-2.2.14.tgz", + "integrity": "sha512-fqGE0IHZ3v+9kCjYvhwrP52aTGP1itOfp4TZZuv4dNl2gKN/pHCIlMhDSqPDb3qJ5Rti39y5T+/XrfCsiDRjKw==", "dev": true, "dependencies": { - "n12": "0.4.0", + "n12": "1.8.17", "type-fest": "2.13.0", "userhome": "1.0.0" } @@ -7333,9 +7392,9 @@ } }, "node_modules/loglevel": { - "version": "1.8.1", - "resolved": "https://registry.npmjs.org/loglevel/-/loglevel-1.8.1.tgz", - "integrity": "sha512-tCRIJM51SHjAayKwC+QAg8hT8vg6z7GSgLJKGvzuPb1Wc+hLzqtuVLxp6/HzSPOozuK+8ErAhy7U/sVzw8Dgfg==", + "version": "1.9.1", + "resolved": "https://registry.npmjs.org/loglevel/-/loglevel-1.9.1.tgz", + "integrity": "sha512-hP3I3kCrDIMuRwAwHltphhDM1r8i55H33GgqjXbrisuJhF4kRhW1dNuxsRklp4bXl8DSdLaNLuiL4A/LWRfxvg==", "dev": true, "engines": { "node": ">= 0.6.0" @@ -7926,9 +7985,9 @@ } }, "node_modules/n12": { - "version": "0.4.0", - "resolved": "https://registry.npmjs.org/n12/-/n12-0.4.0.tgz", - "integrity": "sha512-p/hj4zQ8d3pbbFLQuN1K9honUxiDDhueOWyFLw/XgBv+wZCE44bcLH4CIcsolOceJQduh4Jf7m/LfaTxyGmGtQ==", + "version": "1.8.17", + "resolved": "https://registry.npmjs.org/n12/-/n12-1.8.17.tgz", + "integrity": "sha512-/NdfkU7nyqq70E4RvDa3OrR/wkZrYjDGXjn4JgIZnn+ULcyW1f6BLjNqyFC+ND9FqzyWjcQhvagFJmVJ8k8Lew==", "dev": true }, "node_modules/nanoid": { @@ -8917,9 +8976,9 @@ } }, "node_modules/prettier": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/prettier/-/prettier-3.1.0.tgz", - "integrity": "sha512-TQLvXjq5IAibjh8EpBIkNKxO749UEWABoiIZehEPiY4GNpVdhaFKqSTu+QrlU6D2dPAfubRmtJTi4K4YkQ5eXw==", + "version": "3.2.5", + "resolved": "https://registry.npmjs.org/prettier/-/prettier-3.2.5.tgz", + "integrity": "sha512-3/GWa9aOC0YeD7LUfvOG2NiDyhOWRvt1k+rcKhOuYnMY24iiCphgneUfJDyFXd6rZCAnuLBv6UeAULtrhT/F4A==", "dev": true, "bin": { "prettier": "bin/prettier.cjs" @@ -9591,9 +9650,9 @@ "dev": true }, "node_modules/safaridriver": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/safaridriver/-/safaridriver-0.1.0.tgz", - "integrity": "sha512-azzzIP3gR1TB9bVPv7QO4Zjw0rR1BWEU/s2aFdUMN48gxDjxEB13grAEuXDmkKPgE74cObymDxmAmZnL3clj4w==", + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/safaridriver/-/safaridriver-0.1.2.tgz", + "integrity": "sha512-4R309+gWflJktzPXBQCobbWEHlzC4aK3a+Ov3tz2Ib2aBxiwd11phkdIBH1l0EO22x24CJMUQkpKFumRriCSRg==", "dev": true }, "node_modules/safe-buffer": { @@ -11302,29 +11361,29 @@ } }, "node_modules/web-streams-polyfill": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/web-streams-polyfill/-/web-streams-polyfill-3.2.1.tgz", - "integrity": "sha512-e0MO3wdXWKrLbL0DgGnUV7WHVuw9OUvL4hjgnPkIeEvESk74gAITi5G606JtZPp39cd8HA9VQzCIvA49LpPN5Q==", + "version": "3.3.2", + "resolved": "https://registry.npmjs.org/web-streams-polyfill/-/web-streams-polyfill-3.3.2.tgz", + "integrity": "sha512-3pRGuxRF5gpuZc0W+EpwQRmCD7gRqcDOMt688KmdlDAgAyaB1XlN0zq2njfDNm44XVdIouE7pZ6GzbdyH47uIQ==", "dev": true, "engines": { "node": ">= 8" } }, "node_modules/webdriver": { - "version": "8.24.6", - "resolved": "https://registry.npmjs.org/webdriver/-/webdriver-8.24.6.tgz", - "integrity": "sha512-k5XI2/SHd/14h4ElPQH8EzSUXujZIGbBEi+3dTS2H457KFR5Q8QYfIazDs/YnEdooOp8b6Oe9N7qI99LP8K6bQ==", + "version": "8.29.1", + "resolved": "https://registry.npmjs.org/webdriver/-/webdriver-8.29.1.tgz", + "integrity": "sha512-D3gkbDUxFKBJhNHRfMriWclooLbNavVQC1MRvmENAgPNKaHnFn+M+WtP9K2sEr0XczLGNlbOzT7CKR9K5UXKXA==", "dev": true, "dependencies": { "@types/node": "^20.1.0", "@types/ws": "^8.5.3", - "@wdio/config": "8.24.6", - "@wdio/logger": "8.16.17", - "@wdio/protocols": "8.23.0", - "@wdio/types": "8.24.2", - "@wdio/utils": "8.24.6", + "@wdio/config": "8.29.1", + "@wdio/logger": "8.28.0", + "@wdio/protocols": "8.24.12", + "@wdio/types": "8.29.1", + "@wdio/utils": "8.29.1", "deepmerge-ts": "^5.1.0", - "got": "^ 12.6.1", + "got": "^12.6.1", "ky": "^0.33.0", "ws": "^8.8.0" }, @@ -11332,63 +11391,26 @@ "node": "^16.13 || >=18" } }, - "node_modules/webdriver/node_modules/get-stream": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-6.0.1.tgz", - "integrity": "sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg==", - "dev": true, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/webdriver/node_modules/got": { - "version": "12.6.1", - "resolved": "https://registry.npmjs.org/got/-/got-12.6.1.tgz", - "integrity": "sha512-mThBblvlAF1d4O5oqyvN+ZxLAYwIJK7bpMxgYqPD9okW0C3qm5FFn7k811QrcuEBwaogR3ngOFoCfs6mRv7teQ==", - "dev": true, - "dependencies": { - "@sindresorhus/is": "^5.2.0", - "@szmarczak/http-timer": "^5.0.1", - "cacheable-lookup": "^7.0.0", - "cacheable-request": "^10.2.8", - "decompress-response": "^6.0.0", - "form-data-encoder": "^2.1.2", - "get-stream": "^6.0.1", - "http2-wrapper": "^2.1.10", - "lowercase-keys": "^3.0.0", - "p-cancelable": "^3.0.0", - "responselike": "^3.0.0" - }, - "engines": { - "node": ">=14.16" - }, - "funding": { - "url": "https://github.com/sindresorhus/got?sponsor=1" - } - }, "node_modules/webdriverio": { - "version": "8.24.6", - "resolved": "https://registry.npmjs.org/webdriverio/-/webdriverio-8.24.6.tgz", - "integrity": "sha512-gJMAJiErbXe/oFJbV+H9lXp9GPxnUgHrbtxkG6SCKQlk1zPFho9FZ3fQWl/ty84w5n9ZMhAdnQIfZM9aytxIBQ==", + "version": "8.29.1", + "resolved": "https://registry.npmjs.org/webdriverio/-/webdriverio-8.29.1.tgz", + "integrity": "sha512-NZK95ivXCqdPraB3FHMw6ByxnCvtgFXkjzG2l3Oq5z0IuJS2aMow3AKFIyiuG6is/deGCe+Tb8eFTCqak7UV+w==", "dev": true, "dependencies": { "@types/node": "^20.1.0", - "@wdio/config": "8.24.6", - "@wdio/logger": "8.16.17", - "@wdio/protocols": "8.23.0", - "@wdio/repl": "8.23.1", - "@wdio/types": "8.24.2", - "@wdio/utils": "8.24.6", + "@wdio/config": "8.29.1", + "@wdio/logger": "8.28.0", + "@wdio/protocols": "8.24.12", + "@wdio/repl": "8.24.12", + "@wdio/types": "8.29.1", + "@wdio/utils": "8.29.1", "archiver": "^6.0.0", "aria-query": "^5.0.0", "css-shorthand-properties": "^1.1.1", "css-value": "^0.0.1", - "devtools-protocol": "^0.0.1213968", + "devtools-protocol": "^0.0.1249869", "grapheme-splitter": "^1.0.2", - "import-meta-resolve": "^3.0.0", + "import-meta-resolve": "^4.0.0", "is-plain-obj": "^4.1.0", "lodash.clonedeep": "^4.5.0", "lodash.zip": "^4.2.0", @@ -11398,7 +11420,7 @@ "resq": "^1.9.1", "rgb2hex": "0.2.5", "serialize-error": "^11.0.1", - "webdriver": "8.24.6" + "webdriver": "8.29.1" }, "engines": { "node": "^16.13 || >=18" diff --git a/package.json b/package.json index 8c0b05750..7214ba3d1 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "blockly", - "version": "10.3.1", + "version": "10.4.0", "description": "Blockly is a library for building visual programming editors.", "keywords": [ "blockly" @@ -78,7 +78,7 @@ "eslint": "^8.4.1", "eslint-config-google": "^0.14.0", "eslint-config-prettier": "^9.0.0", - "eslint-plugin-jsdoc": "^46.2.6", + "eslint-plugin-jsdoc": "^48.0.2", "glob": "^10.3.4", "google-closure-compiler": "^20230802.0.0", "gulp": "^4.0.2", @@ -97,7 +97,7 @@ "markdown-tables-to-json": "^0.1.7", "mocha": "^10.0.0", "patch-package": "^8.0.0", - "prettier": "3.1.0", + "prettier": "3.2.5", "readline-sync": "^1.4.10", "rimraf": "^5.0.0", "typescript": "^5.0.2", diff --git a/scripts/gulpfiles/docs_tasks.js b/scripts/gulpfiles/docs_tasks.js index 8885af24a..8820a586f 100644 --- a/scripts/gulpfiles/docs_tasks.js +++ b/scripts/gulpfiles/docs_tasks.js @@ -95,7 +95,11 @@ const createToc = function(done) { const files = fs.readdirSync(DOCS_DIR); const map = buildAlternatePathsMap(files); const referencePath = '/blockly/reference/js'; - fs.writeSync(toc, 'toc:\n'); + + const tocHeader = `toc: +- title: Overview + path: /blockly/reference/js/blockly.md\n`; + fs.writeSync(toc, tocHeader); // Generate a section of TOC for each section/heading in the overview file. const sections = fileContent.split('##'); diff --git a/scripts/gulpfiles/package_tasks.js b/scripts/gulpfiles/package_tasks.js index 38a5b5f9a..46d91ec5f 100644 --- a/scripts/gulpfiles/package_tasks.js +++ b/scripts/gulpfiles/package_tasks.js @@ -348,7 +348,6 @@ function packageDTS() { return gulp.src(handwrittenSrcs, {base: 'typings'}) .pipe(gulp.src(`${TYPINGS_BUILD_DIR}/**/*.d.ts`, {ignore: [ `${TYPINGS_BUILD_DIR}/blocks/**/*`, - `${TYPINGS_BUILD_DIR}/generators/**/*`, ]})) .pipe(gulp.replace('AnyDuringMigration', 'any')) .pipe(gulp.dest(RELEASE_DIR)); diff --git a/scripts/i18n/js_to_json.py b/scripts/i18n/js_to_json.py index c073163de..c070f3408 100755 --- a/scripts/i18n/js_to_json.py +++ b/scripts/i18n/js_to_json.py @@ -114,20 +114,29 @@ def main(): write_files(args.author, args.lang, args.output_dir, results, False) # Create synonyms.json. + synonyms_sorted = sort_dict(synonyms) synonym_file_name = os.path.join(os.curdir, args.output_dir, 'synonyms.json') with open(synonym_file_name, 'w') as outfile: - json.dump(synonyms, outfile) + json.dump(synonyms_sorted, outfile) if not args.quiet: print("Wrote {0} synonym pairs to {1}.".format( - len(synonyms), synonym_file_name)) + len(synonyms_sorted), synonym_file_name)) # Create constants.json + constants_sorted = sort_dict(constants) constants_file_name = os.path.join(os.curdir, args.output_dir, 'constants.json') with open(constants_file_name, 'w') as outfile: - json.dump(constants, outfile) + json.dump(constants_sorted, outfile) if not args.quiet: print("Wrote {0} constant pairs to {1}.".format( - len(constants), synonym_file_name)) + len(constants_sorted), synonym_file_name)) + +def sort_dict(unsorted_dict): + # Sort the dictionary (thereby enabling better diffing of changes). + myKeys = list(unsorted_dict.keys()) + myKeys.sort() + sorted_dict = {i: unsorted_dict[i] for i in myKeys} + return sorted_dict if __name__ == '__main__': main() diff --git a/tests/mocha/webdriver.js b/tests/mocha/webdriver.js index c4d3357b8..207917c5e 100644 --- a/tests/mocha/webdriver.js +++ b/tests/mocha/webdriver.js @@ -63,7 +63,8 @@ async function runMochaTestsInBrowser() { console.log('There is at least one test failure, but no messages reported. Mocha may be failing because no tests are being run.'); } for (const el of failureMessagesEls) { - console.log(await el.getText()); + const messageHtml = await el.getHTML(); + console.log(messageHtml.replace('

', '').replace('

', '')); } } diff --git a/tests/scripts/check_metadata.sh b/tests/scripts/check_metadata.sh index 1accb7148..f8d7b7457 100755 --- a/tests/scripts/check_metadata.sh +++ b/tests/scripts/check_metadata.sh @@ -37,7 +37,8 @@ readonly RELEASE_DIR='dist' # Q2 2023 9.3.3 887618 # Q3 2023 10.1.3 898859 # Q4 2023 10.2.2 903535 -readonly BLOCKLY_SIZE_EXPECTED=903535 +# Q1 2024 10.3.1 914366 +readonly BLOCKLY_SIZE_EXPECTED=914366 # Size of blocks_compressed.js # Q2 2019 2.20190722.0 75618 @@ -60,6 +61,7 @@ readonly BLOCKLY_SIZE_EXPECTED=903535 # Q2 2023 9.3.3 91848 # Q3 2023 10.1.3 90150 # Q4 2023 10.2.2 90269 +# Q1 2024 10.3.1 90269 readonly BLOCKS_SIZE_EXPECTED=90269 # Size of blockly_compressed.js.gz @@ -84,7 +86,8 @@ readonly BLOCKS_SIZE_EXPECTED=90269 # Q2 2023 9.3.3 175206 # Q3 2023 10.1.3 180553 # Q4 2023 10.2.2 181474 -readonly BLOCKLY_GZ_SIZE_EXPECTED=181474 +# Q1 2024 10.3.1 184237 +readonly BLOCKLY_GZ_SIZE_EXPECTED=184237 # Size of blocks_compressed.js.gz # Q2 2019 2.20190722.0 14552 @@ -107,7 +110,8 @@ readonly BLOCKLY_GZ_SIZE_EXPECTED=181474 # Q2 2023 9.3.3 16736 # Q3 2023 10.1.3 16508 # Q4 2023 10.2.2 16442 -readonly BLOCKS_GZ_SIZE_EXPECTED=16442 +# Q1 2024 10.3.1 16533 +readonly BLOCKS_GZ_SIZE_EXPECTED=16533 # ANSI colors readonly BOLD_GREEN='\033[1;32m' diff --git a/tests/typescript/src/generators.ts b/tests/typescript/src/generators.ts new file mode 100644 index 000000000..a87d70ee3 --- /dev/null +++ b/tests/typescript/src/generators.ts @@ -0,0 +1,31 @@ +/** + * @license + * Copyright 2024 Google LLC + * SPDX-License-Identifier: Apache-2.0 + */ + +import * as Blockly from 'blockly-test/core'; +import {JavascriptGenerator} from 'blockly-test/javascript'; +import {PhpGenerator, phpGenerator, Order} from 'blockly-test/php'; +import {LuaGenerator} from 'blockly-test/lua'; +import {PythonGenerator} from 'blockly-test/python'; +import {DartGenerator} from 'blockly-test/dart'; + +JavascriptGenerator; +PhpGenerator; +LuaGenerator; +PythonGenerator; +DartGenerator; + +class TestGenerator extends PhpGenerator {} + +const testGenerator = new TestGenerator(); + +testGenerator.forBlock['test_block'] = function ( + _block: Blockly.Block, + _generator: TestGenerator, +) { + return ['a fake code string', Order.ADDITION]; +}; + +phpGenerator.quote_(); diff --git a/typings/dart.d.ts b/typings/dart.d.ts index 4dda479a4..bf89e4f06 100644 --- a/typings/dart.d.ts +++ b/typings/dart.d.ts @@ -26,3 +26,5 @@ export enum Order { } export declare const dartGenerator: any; + +export {DartGenerator} from './generators/dart'; diff --git a/typings/javascript.d.ts b/typings/javascript.d.ts index b507a9be4..ed1106bbc 100644 --- a/typings/javascript.d.ts +++ b/typings/javascript.d.ts @@ -43,3 +43,5 @@ export enum Order { } export declare const javascriptGenerator: any; + +export {JavascriptGenerator} from './generators/javascript'; diff --git a/typings/lua.d.ts b/typings/lua.d.ts index 693fb0ba2..752e8521a 100644 --- a/typings/lua.d.ts +++ b/typings/lua.d.ts @@ -20,3 +20,5 @@ export enum Order { } export declare const luaGenerator: any; + +export {LuaGenerator} from './generators/lua'; diff --git a/typings/php.d.ts b/typings/php.d.ts index 29a223613..deaf9b899 100644 --- a/typings/php.d.ts +++ b/typings/php.d.ts @@ -45,3 +45,5 @@ export enum Order { } export declare const phpGenerator: any; + +export {PhpGenerator} from './generators/php'; diff --git a/typings/python.d.ts b/typings/python.d.ts index 6d6449e37..c0a2c284b 100644 --- a/typings/python.d.ts +++ b/typings/python.d.ts @@ -29,3 +29,5 @@ export enum Order { } export declare const pythonGenerator: any; + +export {PythonGenerator} from './generators/python';