Giter VIP home page Giter VIP logo

Comments (21)

PhoenixZeng avatar PhoenixZeng commented on May 26, 2024 1

I'm too lazy to make pr

from animdessin2.

PhoenixZeng avatar PhoenixZeng commented on May 26, 2024 1

its a click interface

I got it

Untitled-1.txt Untitled-2.txt

content too long. i uploaded the file. just text file

check this . the updated translation version
No English lines in the updated version

from animdessin2.

schroef avatar schroef commented on May 26, 2024 1

Well that idea came from have different setups. Some people use this panel in a vertical method, since i made it responsive, that works. Though the timeline scrubber would not work nice than. So thats why i added that extra option.

timescrubber-separate

from animdessin2.

schroef avatar schroef commented on May 26, 2024

Sorry for the very late response, I have not check this repo since i tried to work in the main repo.

Ill add this translation, i need to check if all is still up to date to my current language files. I was thinking about changing some namings because on window the first names now show double tooltips.

Ive added a small update language file below, would you mind adding that last translation? ive added the lines and they are in English. I think i got the correct lines and added them in your translation file

PNL_Title_ToolGuide=AnimDessin2 帮助指南
PNL_Title_VideoGuide=AnimDessin2 视频指南
PNL_Title_GlobalTimeline=AnimDessin2 | Global Timeline 
flyout_about=关于AnimDessin2
flyout_onlineinfo=在线视频 & 教程
flyout_iconSml=小图标
flyout_iconMed=中图标
flyout_iconBig=大图标
flyout_iconCenter=中心图标
flyout_globalTimeline=Global Timeline
flyout_openTimeline=Separate Panel
flyout_timeCode=Use Timecode
# flyout_frameCode=Framecode
flyout_tooltips=鼠标提示
flyout_helpguides=帮助手册
flyout_toolguide=工具手册
# flyout_videoguide=导入 & 教程 视频
flyout_videoguide=帮助/教程 视频
flyout_closepanel=关闭面板
TG_SectionToolGuideTitle=工具手册
TG_SectionVideoGuideTitle=帮助 & 教程
#doesnt worh when SNAV_toolGuide is used?!?!
SNAV_toolsGuide=工具
SNAV_videoGuide=视频
TG_SearchPlaceholder=搜索
TG_NoResultsFound=没有匹配的结果...
TG_showTimeline_0=切换时间轴面板
TG_showTimeline_1=动画面板选项
TG_showTimeline_2=显示/隐藏时间线面板
TG_newDoc_0=新文档
TG_newDoc_1=设置时间线帧率
TG_newDoc_2=进入时间线
TG_newDoc_3=渲染视频
TG_newDoc_4=新建时间线和视频组
TG_newDoc_5=New timeline with video group
TG_canvasSize_0=画布尺寸
TG_canvasSize_1=窗口自适应
TG_canvasSize_2=缩放至 100%
TG_canvasSize_3=设置画布大小
TG_save_0=保存为
TG_save_1=另存为
TG_save_2=保存
TG_newFrameOne_0=新建帧1
TG_newFrameOne_1=添加新视频帧1
TG_newFrameOne_2=添加新帧1
TG_newFrameTwo_0=新建帧2
TG_newFrameTwo_1=添加新视频帧2
TG_newFrameTwo_2=添加新帧2
TG_duplicateFrame_0=复制帧
TG_duplicateFrame_1=复制 帧/层
TG_deleteFrame_0=删除帧
TG_deleteFrame_1=删除 帧/层
TG_deleteFrame_2=Delete content frame/layer
TG_toggleFavorite_0=过滤器选择层
TG_toggleFavorite_1=显示所有层
TG_toggleFavorite_2=显示收藏层
TG_toggleFavorite_3=收藏选中层并隐藏其他层
TG_onionSkin_0='OnionSkin' 洋葱皮模式
TG_onionSkin_1=洋葱皮模式显示在当前帧上绘制的内容加上在周围帧上绘制的内容
TG_onionSkinSettings_0='OnionSkin' 洋葱皮设置
TG_onionSkinSettings_1=指定启用洋葱皮时上一帧和下一帧的显示方式
TG_newVideoGroup_0=新建视频组
TG_newVideoGroup_1=从所选内容新建视频组
TG_newVideoGroup_2=取消选定的视频组
TG_newVideoGroup_3=具有空白帧的新视频组
TG_renameFrame_0=重命名帧
TG_renameFrame_1=使用对话框重命名帧、层或视频组
TG_frameMinus_0=降低帧
TG_frameMinus_1=减少2帧持续时间
TG_frameMinus_2=减少5帧持续时间
TG_frameMinus_3=减少1帧持续时间
TG_framePlus_0=增加帧
TG_framePlus_1=提高2帧持续时间
TG_framePlus_2=提高5帧持续时间
TG_framePlus_3=提高1帧持续时间
TG_colorRedToggle_0=红色遮罩
TG_colorRedToggle_1=清除红色遮罩
TG_colorRedToggle_2=隐藏红色遮罩
TG_colorRedToggle_3=显示红色遮罩
TG_colorRedToggle_4=添加红色遮罩
TG_colorGreenToggle_0=绿色遮罩
TG_colorGreenToggle_1=清除绿色遮罩
TG_colorGreenToggle_2=隐藏绿色遮罩
TG_colorGreenToggle_3=显示绿色遮罩
TG_colorGreenToggle_3=添加绿色遮罩
TG_colorBlueToggle_0=蓝色遮罩
TG_colorBlueToggle_1=清除蓝色遮罩
TG_colorBlueToggle_2=隐藏蓝色遮罩
TG_colorBlueToggle_3=显示蓝色遮罩
TG_colorBlueToggle_3=添加蓝色遮罩
TG_colorNone_0=清除所有图层效果
TG_colorNone_1=隐藏所有图层效果
TG_colorNone_2=显示所有图层效果
TG_colorNone_3=清除所有图层效果
TG_inBetweenPrevious_0=In between previous
TG_inBetweenPrevious_1=将选中的帧/层移动到前面的帧/层之前
TG_inBetweenCreateBefore_0=New inbetween after
TG_inBetweenCreateBefore_1=Create a new in-between before selected frame/layer 
TG_inBetweenCreateAfter_1=Create a new in-between after selected frame/layer
TG_inBetweenNext_0=Inbetween next
TG_inBetweenNext_1=将选定的帧/层移到下一帧/层之后
TG_playheadSplit_0=在播放头处切割
TG_playheadSplit_1=拆分播放头并创建视频组
TG_playheadSplit_2=Split layer into 1 frames and make video group
TG_playheadSplit_3=拆分播放头
TG_playheadStart_0=设置播放头开始
TG_playheadStart_1=从播放头修剪开始帧/层
TG_playheadStart_2=将开始帧/层移动到播放头
TG_playheadStart_3=将工作区的起点设置为播放头
TG_playheadEnd_0=设置播放头结束
TG_playheadEnd_1=在播放头修剪结束帧/层
TG_playheadEnd_2=将结束帧/层移动到播放头
TG_playheadEnd_3=将工作区的终点设置为播放头
TG_playheadPrevEdit_0=转到上一个编辑
TG_playheadPrevEdit_1=跳转第一帧
TG_playheadPrevEdit_2=跳转开始工作空间
TG_playheadPrevEdit_3=跳转前一个编辑
TG_playheadNextEdit_0=转到下一个编辑
TG_playheadNextEdit_1=跳转最后帧
TG_playheadNextEdit_2=跳转结束工作空间
TG_playheadNextEdit_3=跳转后一个编辑
TG_commentEdit_0=编辑注释
TG_commentEdit_1=在播放头添加/编辑时间轴注释
TG_commentExportHtml_0=导出注释为网页('html')
TG_commentExportHtml_1=导出时间轴注释为一个HTML文件
TG_commentExportText_0=导出注释为文本('text')
TG_commentExportText_1=导出时间轴注释为一个文本文件
TG_videoShortcuts_0=使用时间轴快捷键
TG_videoShortcuts_1=启用时间线快捷键,允许您使用左右箭头键移动播放头,并使用空格键播放/停止
STR_processing=处理中
STR_noTimeline=No timeline available

from animdessin2.

schroef avatar schroef commented on May 26, 2024

Please hold on, im updating the locations files to fix the tooltip showing on Windows. I've updated the tooltips method.
give me couple minutes

from animdessin2.

schroef avatar schroef commented on May 26, 2024

Okay took much and much longer, ive updated the message location file 2 posts up.

from animdessin2.

schroef avatar schroef commented on May 26, 2024

Ive also started localizing the scripts themselves, so we also see this in the history panel. Ive usedGoogle Translate for this. Could you perhaps check if they are correct?

///////////////////////////////////////////////////
// Localized history outputs
// PS version alert
locPhotoshopversionAlert = {
    en: "Photoshop versions before CS2 are not supported!",
    fr: "Les versions de Photoshop avant CS2 ne sont pas prises en charge!",
    nl: "Photoshop-versies v\u00F3\u00F3r CS2 worden niet ondersteund!",
    ch: "不支持 CS2 之前的 Photoshop 版本"
};
// Progress Bar Dialog
locPbarProgressTitle = {
    en: "Progress",
    fr: "Le progr\u00E8s",
    nl: "Vooruitgang",
    ch: "进展"
};
locPbarESCcancel = {
    en: "[ESC] cancels",
    fr: "[ESC] annule",
    nl: "[ESC] annuleert",
    ch: "[ESC] 取消",
};
locPbarWait = {
    en: "Please wait...",
    fr: "S'il vous pla\u00EEt, attendez...",
    nl: "Een moment...",
    ch: "请稍等..."
};
locPbarInit = {
    en: "Initializing...",
    fr: "Initialisation ...",
    nl: "Initialiseren ...",
    ch: "初始化..."
};
locPbarProcessing = {
    en: "Processing ",
    fr: "En traitement ",
    nl: "Verwerken ",
    ch: "洗印 "
};
locPbarReselectLayers = {
    en: "Reselecting layers ",
    fr: "S\u00E9lection de calques ",
    nl: "Lagen selecteren ",
    ch: "重新选择图层 "
};
Msg = {
    en: "",
    fr: "",
    nl: "",
    ch: ""
};

// Localize AnimD2_canvasSize.jsx
locCanvasSize = {
    en: "Set canvas size of document",
    fr: "XXXX",
    nl: "Stel canvasgrootte in van document",
    ch: "设置文档的画布大小"
};
// Localize AnimD2_colorBlue.jsx
locColorBlue = {
    en: "Colorize the video frame in blue",
    fr: "Coloriser le cadre vid\u00E9o en bleue",
    nl: "Kleurbedekking video frame in blauw",
    ch: "将视频帧着色为蓝色"
};
// Localize AnimD2_colorGlobalHide.jsx
locColorGlobalHide = {
    en: "Hide all overlays",
    fr: "XXXX",
    nl: "Verberg alle kleurbedekkingen",
    ch: "隐藏所有叠加层"
};
// Localize AnimD2_colorGlobalShow.jsx
locColorGlobalShow = {
    en: "Show all overlays",
    fr: "XXXX",
    nl: "Toon alle kleurbedekkingen",
    ch: "显示所有叠加"
};
// Localize AnimD2_colorGreen.jsx
locColorGreen = {
    en: "Colorize the video frame in Green",
    fr: "Coloriser le cadre vid\u00E9o en verte",
    nl: "Kleurbedekking video frame in groen",
    ch: "将视频帧着色为绿色"
};
// Localize AnimD2_colorNone.jsx
locColorNone = {
    en: "Clear all layer effects",
    fr: "XXXX",
    nl: "Verwijder alle laag effecten",
    ch: "清除所有图层效果"
};
// Localize AnimD2_colorNoneFXHideAll.jsx
locColorNoneFXHideAll = {
    en: "Hide all layers effects",
    fr: "XXXX",
    nl: "Verberg alle laag effecten",
    ch: "隐藏所有图层效果"
};
// Localize AnimD2_colorNoneFXShowAll.jsx
locColorNoneFXShowAll = {
    en: "Show all layers effects",
    fr: "XXXX",
    nl: "Toon alle laag effecten",
    ch: "显示所有图层效果"
};
// Localize AnimD2_colorOnlyClearColor.jsx
locColorOnlyClearColor = {
    en: "Clear only color overlay from video frame",
    fr: "Effacer uniquement la superposition de couleurs de l'image vid\u00E9oo",
    nl: "Verwijder alleen kleurbedekking van video frame",
    ch: "仅清除视频帧中的颜色叠加"
};
// Localize AnimD2_colorRed.jsx
locColorRed = {
    en: "Colorize the video frame in red",
    fr: "Coloriser le cadre vid\u00E9o en rouge",
    nl: "Kleurbedekking video frame in rood",
    ch: "将视频帧着色为红色"
};
// Localize AnimD2_commentEdit.jsx
locCommentEdit = {
    en: "Add or Edit a timeline comment",
    fr: "Ajouter ou modifier un commentaire",
    nl: "Nieuwe of bewerk opmerkingen",
    ch: "添加或编辑时间线评论"
};
// Localize AnimD2_creat1Frame.jsx
locCreate1Frame = {
    en: "Add 1 frame layer",
    fr: "Ajouter 1 couche de cadre",
    nl: "1 frame laag toevoegen",
    ch: "添加1个框架层"
};
// Localize AnimD2_creat1FrameVideoLayer.jsx
locCreate1FrameVideoLayer = {
    en: "Add 1 frame video layer",
    fr: "Ajouter 1 couche de vid\u00E9oo",
    nl: "1 frame video laag toevoegen",
    ch: "添加1帧视频层"
};
// Localize AnimD2_creat2Frame.jsx
locCreate2Frames = {
    en: "Add 2 frame layer",
    fr: "Ajouter 2 couche de cadre",
    nl: "2 frame laag toevoegen",
    ch: "添加2个框架层"
};
// Localize AnimD2_creat2FrameVideoLayer.jsx
locCreate2FrameVideoLayer = {
    en: "Add 2 frame video layer",
    fr: "Ajouter 2 couche de vid\u00E9oo",
    nl: "2 frame video laag toevoegen",
    ch: "添加2帧视频层"
};
// Localize AnimD2_deleteFrame.jsx
locDeleteFrame = {
    en: "Delete selected frame/layer",
    fr: "Supprimer le cadre/calque s\u00E9lectionn\u00E9",
    nl: "Verwijder geselecteerde frame/laag",
    ch: "删除选定的帧/层"
};
// Localize AnimD2_deleteFrameContent.jsx
locDeleteFrameContent = {
    en: "Delete content selected frame/layer",
    fr: "Supprimer le cadre/calque s\u00E9lectionn\u00E9 de contenu",
    nl: "Verwijder inhoud geselecteerde frame/laag",
    ch: "删除内容选定的帧/层"
};
// Localize AnimD2_duplicateFrame.jsx
locDuplicateFrame = {
    en: "Duplicate frame/layer",
    fr: "Cadre/calque en double",
    nl: "Dupliceer frame/layer",
    ch: "复制帧/层"
};
// Localize AnimD2_frameMinusFive.jsx
locFrameMinusFive = {
    en: "Expose 5 frames less",
    fr: "XXXXXXXXX",
    nl: "Geef 5 frames minder weer",
    ch: "少曝光 5 帧"
};
// Localize AnimD2_frameMinusOne.jsx
locFrameMinusOne = {
    en: "Expose 1 frame less",
    fr: "XXXXXXXXX",
    nl: "Geef 1 frame minder weer",
    ch: "少曝光一帧"
};
// Localize AnimD2_frameMinusTen.jsx
locFrameMinusTen = {
    en: "Expose 10 frames less",
    fr: "XXXXXXXXX",
    nl: "Geef 10 frames minder weer",
    ch: "少曝光 10 帧"
};
// Localize AnimD2_frameMinusTwo.jsx
locFrameMinusTwo = {
    en: "Expose 2 frames less",
    fr: "XXXXXXXXX",
    nl: "Geef 2 frames minder weer",
    ch: "少曝光 2 帧"
};
// Localize AnimD2_framePlusFive.jsx
locFramePlusFive = {
    en: "Expose 5 frames more",
    fr: "XXXXXXXXX",
    nl: "Geef 5 frames meer weer",
    en: "再曝光5帧"
};
// Localize AnimD2_frameMinusOne.jsx
locFramePlusOne = {
    en: "Expose 1 frame more",
    fr: "XXXXXXXXX",
    nl: "Geef 1 frame meer weer",
    ch: "多曝光 1 帧"
};
// Localize AnimD2_frameMinusTen.jsx
locFramePlusTen = {
    en: "Expose 10 frames more",
    fr: "XXXXXXXXX",
    nl: "Geef 10 frames meer weer",
    ch: "再曝光 10 帧"
};
// Localize AnimD2_frameMinusTwo.jsx
locFramePlusTwo = {
    en: "Expose 2 frames more",
    fr: "XXXXXXXXX",
    nl: "Geef 2 frames meer weer",
    ch: "多曝光 2 帧"
};
// Localize AnimD2_frameRename.jsx
// Rename Frame Dialog
locRenameFrameTitle = {
    en: "Rename frame/Layer",
    fr: "Renommer le cadre/calque",
    nl: "Frame/laag hernoemen",
    ch: "重命名框架/层"
};
locRenameFrameNewName = {
    en: "New name...",
    fr: "Nouveau nom...",
    nl: "Nieuwe naam...",
    ch: "新名字..."
};
locRenameFrameAlertName = {
    en: "Please give a name",
    fr: "Veuillez donner un nom",
    nl: "Geef een naam op",
    ch: "请给个名字"
};
locRenameFrameApplySelected = {
    en: "Apply to selection",
    fr: "Appliquer \u00E0 la s\u00E9lection",
    nl: "Pas toe op selectie",
    ch: "适用于选择"
};
locRenameFrameCancelBtn = {
    en: "Cancel",
    fr: "Annuler",
    nl: "Annuleer",
    ch: "取消"
};
locRenameFrameOkBtn = {
    en: "OK",
    fr: "OK",
    nl: "OK",
    ch: "好",
};
// Localize AnimD2_gotoInTimeLine.jsx
locGoToInTimeline = {
    en: "Go to in timeline",
    fr: "XXXXXXXXX",
    nl: "Ga naar in tijdslijn",
    ch: "进入时间线"
};
// Localize AnimD2_inBetweenCreateAfter.jsx
locCreateInBetween = {
    en: "Create an InBetween",
    fr: "XXXXXXXXX",
    nl: "Voeg een InBetween toe",
    ch: "创建一个中间"
};
// Localize AnimD2_inBetweenNext.jsx
locInBetweenNext = {
    en: "Move the InBetween to next position",
    fr: "XXXXXXXXX",
    nl: "Verplaats de InBetween naar volgende positie",
    ch: "将中间移动到下一个位置"
};
// Localize AnimD2_inBetweenPrevious.jsx
locInBetweenPrevious = {
    en: "Move the InBetween to previous position",
    fr: "XXXXXXXXX",
    nl: "Verplaats de InBetween naar vorige positie",
    ch: "将中间移动到上一个位置"
};
// Localize AnimD2_newDoc.jsx
locNewDoc = {
    en: "Create a timeline with a video group",
    fr: "XXXXXXXXX",
    nl: "Cre\u00EBer tijdslijn met een video groep",
    ch: "使用视频组创建时间线"
};

// Localize AnimD2_newVideoGroup.jsx
locNewVideoGroup = {
    en: "New video group with a blank frame",
    fr: "XXXXXXXXX",
    nl: "Nieuwe video group met blanco frame",
    ch: "带有空白帧的新视频组"
};
// Localize AnimD2_newVideoGroupSelection.jsx
locNewVideoGroupSelection = {
    en: "New video group from selection",
    fr: "XXXXXXXXX",
    nl: "Nieuwe video group van selectie",
    ch: "选择的新视频组"
};
// Localize AnimD2_newVideoUnGroup.jsx
locNewVideoUngroup = {
    en: "Ungroup selected video group",
    fr: "XXXXXXXXX",
    nl: "Degroepeer geselecteerde video groep",
    ch: "取消对所选视频组的分组"
};
// Localize AnimD2_playheadSplit.jsx
locPlayheadSplit = {
    en: "Split at playhead",
    fr: "XXXXXXXXX",
    nl: "Splitsen bij afspeelknop",
    ch: "在播放头处拆分"
};
// Localize AnimD2_splitToFramesGroup.jsx
locSplitToFramesGroup = {
    en: "Split layer into 1 frames and make video group",
    fr: "XXXXXXXXX",
    nl: "Splits laag 1 franes en maak video groep",
    ch: "将图层拆分为 1 帧并制作视频组"
};
// Localize AnimD2_playheadSplitGroup.jsx
locPlayheadSplitGroup = {
    en: "Split at playhead and make video group",
    fr: "XXXXXXXXX",
    nl: "Splitsen bij afspeelknop en video group maken",
    ch: "在播放头处拆分并制作视频组"
};
// Localize AnimD2_playheadEnd.jsx
locPlayheadEnd = {
    en: "Set end of work area",
    fr: "XXXXXXXXX",
    nl: "Stel einde werkgebied in op afspeelknop",
    ch: "设置工作区结束"
};
// Localize AnimD2_playheadStart.jsx
locPlayheadStart = {
    en: "Set start of work area",
    fr: "XXXXXXXXX",
    nl: "Stel begin werkgebied in op afspeelknop",
    ch: "设置工作区的开始"
};
// Localize AnimD2_playheadTrimEnd.jsx
locPlayheadTrimEnd = {
    en: "Trim end of frame(s) to playhead",
    fr: "XXXXXXXXX",
    nl: "Einde frame/laag bijsnijden naar afspeelknop",
    ch: "将帧尾修剪为播放头"
};
// Localize AnimD2_playheadTrimStart.jsx
locPlayheadTrimStart = {
    en: "Trim start of frame(s) to playhead",
    fr: "XXXXXXXXX",
    nl: "Begin frame/laag bijsnijden naar afspeelknop",
    ch: "将帧的开头修剪为播放头"
};
// Localize AnimD2_timelineSetFrameRate.jsx
locTimelineSetFrameRate = {
    en: "Set timeline frame rate",
    fr: "XXXXXXXXX",
    nl: "Stel tijdslijn frame snelheid in",
    ch: "设置时间线帧率"
};
// Localize AnimD2_timelineShowAllLayers.jsx
locTimelineShowAllLayers = {
    en: "Timeline show all layers",
    fr: "XXXXXXXXX",
    nl: "Toon alle lagen in tijdslijn",
    ch: "时间轴显示所有图层"
};
// Localize AnimD2_timelineShowFavorites.jsx
locTimelineShowFavorites = {
    en: "Timeline show favorite",
    fr: "XXXXXXXXX",
    nl: "Toon favorieten in tijdslijn",
    ch: "时间线节目最爱"
};
// Localize AnimD2_timelineShowSetFavorites.jsx
locTimelineShowSetFavorites = {
    en: "Timeline show set favorite",
    fr: "XXXXXXXXX",
    nl: "Toon ingestelde favorieten in tijdslijn",
    ch: "时间线节目集最爱"
};

from animdessin2.

schroef avatar schroef commented on May 26, 2024

Ive added my updates from the past 1 year into this repo, this has also the new timeline scrubber. It would be nice if you could test this.

It works a bit the same as the global timeline scrubber from After Effects. So when you zoom in on the timeline in the timeline panel. When you active this scrubber using ie right-click context menu. As small timeline will appear below the icons, sometimes it doesnt show from the start. Im still working on that.

Once the timeline is visible, you can use timecode or frame numbers. When you click the timestamp indicator will go the that frame in the main timeline. One thing i can do with scripting is set the correct layer under the timestamp indicator. But being able to view the complete timeline even when zoomed in to the max is already a big time saver.

You can check this post where i added screengrabs and perhaps its a better description

from animdessin2.

PhoenixZeng avatar PhoenixZeng commented on May 26, 2024

Ive also started localizing the scripts themselves, so we also see this in the history panel. Ive usedGoogle Translate for this. Could you perhaps check if they are correct?

///////////////////////////////////////////////////
// Localized history outputs
// PS version alert
locPhotoshopversionAlert = {
    en: "Photoshop versions before CS2 are not supported!",
    fr: "Les versions de Photoshop avant CS2 ne sont pas prises en charge!",
    nl: "Photoshop-versies v\u00F3\u00F3r CS2 worden niet ondersteund!",
    ch: "不支持 CS2 之前的 Photoshop 版本"
};
// Progress Bar Dialog
locPbarProgressTitle = {
    en: "Progress",
    fr: "Le progr\u00E8s",
    nl: "Vooruitgang",
    ch: "进度"
};
locPbarESCcancel = {
    en: "[ESC] cancels",
    fr: "[ESC] annule",
    nl: "[ESC] annuleert",
    ch: "[ESC] 取消",
};
locPbarWait = {
    en: "Please wait...",
    fr: "S'il vous pla\u00EEt, attendez...",
    nl: "Een moment...",
    ch: "请稍等..."
};
locPbarInit = {
    en: "Initializing...",
    fr: "Initialisation ...",
    nl: "Initialiseren ...",
    ch: "初始化..."
};
locPbarProcessing = {
    en: "Processing ",
    fr: "En traitement ",
    nl: "Verwerken ",
    ch: "处理中 "
};
locPbarReselectLayers = {
    en: "Reselecting layers ",
    fr: "S\u00E9lection de calques ",
    nl: "Lagen selecteren ",
    ch: "重新选择图层 "
};
Msg = {
    en: "",
    fr: "",
    nl: "",
    ch: ""
};

// Localize AnimD2_canvasSize.jsx
locCanvasSize = {
    en: "Set canvas size of document",
    fr: "XXXX",
    nl: "Stel canvasgrootte in van document",
    ch: "设置文档的画布大小"
};
// Localize AnimD2_colorBlue.jsx
locColorBlue = {
    en: "Colorize the video frame in blue",
    fr: "Coloriser le cadre vid\u00E9o en bleue",
    nl: "Kleurbedekking video frame in blauw",
    ch: "将视频帧着色为蓝色"
};
// Localize AnimD2_colorGlobalHide.jsx
locColorGlobalHide = {
    en: "Hide all overlays",
    fr: "XXXX",
    nl: "Verberg alle kleurbedekkingen",
    ch: "隐藏所有叠加层"
};
// Localize AnimD2_colorGlobalShow.jsx
locColorGlobalShow = {
    en: "Show all overlays",
    fr: "XXXX",
    nl: "Toon alle kleurbedekkingen",
    ch: "显示所有叠加层"
};
// Localize AnimD2_colorGreen.jsx
locColorGreen = {
    en: "Colorize the video frame in Green",
    fr: "Coloriser le cadre vid\u00E9o en verte",
    nl: "Kleurbedekking video frame in groen",
    ch: "将视频帧着色为绿色"
};
// Localize AnimD2_colorNone.jsx
locColorNone = {
    en: "Clear all layer effects",
    fr: "XXXX",
    nl: "Verwijder alle laag effecten",
    ch: "清除所有图层效果"
};
// Localize AnimD2_colorNoneFXHideAll.jsx
locColorNoneFXHideAll = {
    en: "Hide all layers effects",
    fr: "XXXX",
    nl: "Verberg alle laag effecten",
    ch: "隐藏所有图层效果"
};
// Localize AnimD2_colorNoneFXShowAll.jsx
locColorNoneFXShowAll = {
    en: "Show all layers effects",
    fr: "XXXX",
    nl: "Toon alle laag effecten",
    ch: "显示所有图层效果"
};
// Localize AnimD2_colorOnlyClearColor.jsx
locColorOnlyClearColor = {
    en: "Clear only color overlay from video frame",
    fr: "Effacer uniquement la superposition de couleurs de l'image vid\u00E9oo",
    nl: "Verwijder alleen kleurbedekking van video frame",
    ch: "清除视频帧中的颜色叠加"
};
// Localize AnimD2_colorRed.jsx
locColorRed = {
    en: "Colorize the video frame in red",
    fr: "Coloriser le cadre vid\u00E9o en rouge",
    nl: "Kleurbedekking video frame in rood",
    ch: "将视频帧着色为红色"
};
// Localize AnimD2_commentEdit.jsx
locCommentEdit = {
    en: "Add or Edit a timeline comment",
    fr: "Ajouter ou modifier un commentaire",
    nl: "Nieuwe of bewerk opmerkingen",
    ch: "添加或编辑时间线注释"
};
// Localize AnimD2_creat1Frame.jsx
locCreate1Frame = {
    en: "Add 1 frame layer",
    fr: "Ajouter 1 couche de cadre",
    nl: "1 frame laag toevoegen",
    ch: "添加1个帧层"
};
// Localize AnimD2_creat1FrameVideoLayer.jsx
locCreate1FrameVideoLayer = {
    en: "Add 1 frame video layer",
    fr: "Ajouter 1 couche de vid\u00E9oo",
    nl: "1 frame video laag toevoegen",
    ch: "添加1帧视频层"
};
// Localize AnimD2_creat2Frame.jsx
locCreate2Frames = {
    en: "Add 2 frame layer",
    fr: "Ajouter 2 couche de cadre",
    nl: "2 frame laag toevoegen",
    ch: "添加2个帧层"
};
// Localize AnimD2_creat2FrameVideoLayer.jsx
locCreate2FrameVideoLayer = {
    en: "Add 2 frame video layer",
    fr: "Ajouter 2 couche de vid\u00E9oo",
    nl: "2 frame video laag toevoegen",
    ch: "添加2帧视频层"
};
// Localize AnimD2_deleteFrame.jsx
locDeleteFrame = {
    en: "Delete selected frame/layer",
    fr: "Supprimer le cadre/calque s\u00E9lectionn\u00E9",
    nl: "Verwijder geselecteerde frame/laag",
    ch: "删除选定的帧/层"
};
// Localize AnimD2_deleteFrameContent.jsx
locDeleteFrameContent = {
    en: "Delete content selected frame/layer",
    fr: "Supprimer le cadre/calque s\u00E9lectionn\u00E9 de contenu",
    nl: "Verwijder inhoud geselecteerde frame/laag",
    ch: "删除内容选定的帧/层"
};
// Localize AnimD2_duplicateFrame.jsx
locDuplicateFrame = {
    en: "Duplicate frame/layer",
    fr: "Cadre/calque en double",
    nl: "Dupliceer frame/layer",
    ch: "复制帧/层"
};
// Localize AnimD2_frameMinusFive.jsx
locFrameMinusFive = {
    en: "Expose 5 frames less",
    fr: "XXXXXXXXX",
    nl: "Geef 5 frames minder weer",
    ch: "少曝光 5 帧"
};
// Localize AnimD2_frameMinusOne.jsx
locFrameMinusOne = {
    en: "Expose 1 frame less",
    fr: "XXXXXXXXX",
    nl: "Geef 1 frame minder weer",
    ch: "少曝光 1 帧"
};
// Localize AnimD2_frameMinusTen.jsx
locFrameMinusTen = {
    en: "Expose 10 frames less",
    fr: "XXXXXXXXX",
    nl: "Geef 10 frames minder weer",
    ch: "少曝光 10 帧"
};
// Localize AnimD2_frameMinusTwo.jsx
locFrameMinusTwo = {
    en: "Expose 2 frames less",
    fr: "XXXXXXXXX",
    nl: "Geef 2 frames minder weer",
    ch: "少曝光 2 帧"
};
// Localize AnimD2_framePlusFive.jsx
locFramePlusFive = {
    en: "Expose 5 frames more",
    fr: "XXXXXXXXX",
    nl: "Geef 5 frames meer weer",
    en: "多曝光 5 帧"
};
// Localize AnimD2_frameMinusOne.jsx
locFramePlusOne = {
    en: "Expose 1 frame more",
    fr: "XXXXXXXXX",
    nl: "Geef 1 frame meer weer",
    ch: "多曝光 1 帧"
};
// Localize AnimD2_frameMinusTen.jsx
locFramePlusTen = {
    en: "Expose 10 frames more",
    fr: "XXXXXXXXX",
    nl: "Geef 10 frames meer weer",
    ch: "多曝光 10 帧"
};
// Localize AnimD2_frameMinusTwo.jsx
locFramePlusTwo = {
    en: "Expose 2 frames more",
    fr: "XXXXXXXXX",
    nl: "Geef 2 frames meer weer",
    ch: "多曝光 2 帧"
};
// Localize AnimD2_frameRename.jsx
// Rename Frame Dialog
locRenameFrameTitle = {
    en: "Rename frame/Layer",
    fr: "Renommer le cadre/calque",
    nl: "Frame/laag hernoemen",
    ch: "重命名框架/层"
};
locRenameFrameNewName = {
    en: "New name...",
    fr: "Nouveau nom...",
    nl: "Nieuwe naam...",
    ch: "新名字..."
};
locRenameFrameAlertName = {
    en: "Please give a name",
    fr: "Veuillez donner un nom",
    nl: "Geef een naam op",
    ch: "请输入名字"
};
locRenameFrameApplySelected = {
    en: "Apply to selection",
    fr: "Appliquer \u00E0 la s\u00E9lection",
    nl: "Pas toe op selectie",
    ch: "适用于选择"
};
locRenameFrameCancelBtn = {
    en: "Cancel",
    fr: "Annuler",
    nl: "Annuleer",
    ch: "取消"
};
locRenameFrameOkBtn = {
    en: "OK",
    fr: "OK",
    nl: "OK",
    ch: "好的",
};
// Localize AnimD2_gotoInTimeLine.jsx
locGoToInTimeline = {
    en: "Go to in timeline",
    fr: "XXXXXXXXX",
    nl: "Ga naar in tijdslijn",
    ch: "进入时间线"
};
// Localize AnimD2_inBetweenCreateAfter.jsx
locCreateInBetween = {
    en: "Create an InBetween",
    fr: "XXXXXXXXX",
    nl: "Voeg een InBetween toe",
    ch: "创建一个中间帧"
};
// Localize AnimD2_inBetweenNext.jsx
locInBetweenNext = {
    en: "Move the InBetween to next position",
    fr: "XXXXXXXXX",
    nl: "Verplaats de InBetween naar volgende positie",
    ch: "将中间帧移动到下一个位置"
};
// Localize AnimD2_inBetweenPrevious.jsx
locInBetweenPrevious = {
    en: "Move the InBetween to previous position",
    fr: "XXXXXXXXX",
    nl: "Verplaats de InBetween naar vorige positie",
    ch: "将中间帧移动到上一个位置"
};
// Localize AnimD2_newDoc.jsx
locNewDoc = {
    en: "Create a timeline with a video group",
    fr: "XXXXXXXXX",
    nl: "Cre\u00EBer tijdslijn met een video groep",
    ch: "使用视频组创建时间线"
};

// Localize AnimD2_newVideoGroup.jsx
locNewVideoGroup = {
    en: "New video group with a blank frame",
    fr: "XXXXXXXXX",
    nl: "Nieuwe video group met blanco frame",
    ch: "带有空白帧的新视频组"
};
// Localize AnimD2_newVideoGroupSelection.jsx
locNewVideoGroupSelection = {
    en: "New video group from selection",
    fr: "XXXXXXXXX",
    nl: "Nieuwe video group van selectie",
    ch: "选择的新视频组"
};
// Localize AnimD2_newVideoUnGroup.jsx
locNewVideoUngroup = {
    en: "Ungroup selected video group",
    fr: "XXXXXXXXX",
    nl: "Degroepeer geselecteerde video groep",
    ch: "取消对所选视频组的分组"
};
// Localize AnimD2_playheadSplit.jsx
locPlayheadSplit = {
    en: "Split at playhead",
    fr: "XXXXXXXXX",
    nl: "Splitsen bij afspeelknop",
    ch: "在播放头处拆分"
};
// Localize AnimD2_splitToFramesGroup.jsx
locSplitToFramesGroup = {
    en: "Split layer into 1 frames and make video group",
    fr: "XXXXXXXXX",
    nl: "Splits laag 1 franes en maak video groep",
    ch: "将图层拆分为 1 帧并制作视频组"
};
// Localize AnimD2_playheadSplitGroup.jsx
locPlayheadSplitGroup = {
    en: "Split at playhead and make video group",
    fr: "XXXXXXXXX",
    nl: "Splitsen bij afspeelknop en video group maken",
    ch: "在播放头处拆分并制作视频组"
};
// Localize AnimD2_playheadEnd.jsx
locPlayheadEnd = {
    en: "Set end of work area",
    fr: "XXXXXXXXX",
    nl: "Stel einde werkgebied in op afspeelknop",
    ch: "设置工作区结束"
};
// Localize AnimD2_playheadStart.jsx
locPlayheadStart = {
    en: "Set start of work area",
    fr: "XXXXXXXXX",
    nl: "Stel begin werkgebied in op afspeelknop",
    ch: "设置工作区的开始"
};
// Localize AnimD2_playheadTrimEnd.jsx
locPlayheadTrimEnd = {
    en: "Trim end of frame(s) to playhead",
    fr: "XXXXXXXXX",
    nl: "Einde frame/laag bijsnijden naar afspeelknop",
    ch: "将帧尾修剪为播放头"
};
// Localize AnimD2_playheadTrimStart.jsx
locPlayheadTrimStart = {
    en: "Trim start of frame(s) to playhead",
    fr: "XXXXXXXXX",
    nl: "Begin frame/laag bijsnijden naar afspeelknop",
    ch: "将帧的开头修剪为播放头"
};
// Localize AnimD2_timelineSetFrameRate.jsx
locTimelineSetFrameRate = {
    en: "Set timeline frame rate",
    fr: "XXXXXXXXX",
    nl: "Stel tijdslijn frame snelheid in",
    ch: "设置时间线帧率"
};
// Localize AnimD2_timelineShowAllLayers.jsx
locTimelineShowAllLayers = {
    en: "Timeline show all layers",
    fr: "XXXXXXXXX",
    nl: "Toon alle lagen in tijdslijn",
    ch: "时间轴显示所有图层"
};
// Localize AnimD2_timelineShowFavorites.jsx
locTimelineShowFavorites = {
    en: "Timeline show favorite",
    fr: "XXXXXXXXX",
    nl: "Toon favorieten in tijdslijn",
    ch: "时间线-显示收藏"
};
// Localize AnimD2_timelineShowSetFavorites.jsx
locTimelineShowSetFavorites = {
    en: "Timeline show set favorite",
    fr: "XXXXXXXXX",
    nl: "Toon ingestelde favorieten in tijdslijn",
    ch: "时间线-收藏"
};

from animdessin2.

PhoenixZeng avatar PhoenixZeng commented on May 26, 2024

the new version:

PNL_Title_ToolGuide=AnimDessin2 工具指南
PNL_Title_VideoGuide=AnimDessin2 视频指南
PNL_Title_GlobalTimeline=AnimDessin2 全局时间线
flyout_about=关于AnimDessin2
flyout_onlineinfo=在线视频 & 教程
flyout_iconSml=小图标
flyout_iconMed=中图标
flyout_iconBig=大图标
flyout_iconCenter=中心图标
flyout_globalTimeline=全局时间线
flyout_openTimeline=在独立面板中打开
flyout_timeCode=使用时间代码 Timecode
# flyout_frameCode=Framecode
flyout_tooltips=鼠标提示
flyout_helpguides=帮助手册
flyout_toolguide=工具手册
# flyout_videoguide=导入 & 教程 视频
flyout_videoguide=帮助/教程 视频
flyout_closepanel=关闭面板
TG_SectionToolGuideTitle=工具手册
TG_SectionVideoGuideTitle=帮助 & 教程
#doesnt worh when SNAV_toolGuide is used?!?!
SNAV_toolsGuide=工具
SNAV_videoGuide=视频
TG_SearchPlaceholder=搜索
TG_NoResultsFound=没有匹配的结果...
TG_showTimeline_0=切换时间轴面板
TG_showTimeline_1=动画面板选项
TG_showTimeline_2=显示/隐藏时间线面板
TG_newDoc_0=新文档
TG_newDoc_1=新建自定义尺寸时间线和视频组
TG_newDoc_2=设置时间线帧率
TG_newDoc_3=进入时间线
TG_newDoc_4=渲染视频
TG_newDoc_5=新建时间线和视频组
TG_canvasSize_0=画布尺寸
TG_canvasSize_1=窗口自适应
TG_canvasSize_2=缩放至 100%
TG_canvasSize_3=设置画布大小
TG_save_0=保存为
TG_save_1=另存为
TG_save_2=保存
TG_newFrameOne_0=新建 1 帧
TG_newFrameOne_1=添加 1 视频帧
TG_newFrameOne_2=添加 1 帧
TG_newFrameTwo_0=新建 2 帧
TG_newFrameTwo_1=添加 2 视频帧
TG_newFrameTwo_2=添加 2 帧
TG_duplicateFrame_0=复制帧
TG_duplicateFrame_1=复制 帧/层
TG_deleteFrame_0=删除帧
TG_deleteFrame_1=删除 帧/层
TG_deleteFrame_2=Delete content frame/layer
TG_toggleFavorite_0=过滤器选择层
TG_toggleFavorite_1=显示所有层
TG_toggleFavorite_2=显示收藏层
TG_toggleFavorite_3=收藏选中层并隐藏其他层
TG_onionSkin_0='OnionSkin' 洋葱皮模式
TG_onionSkin_1=洋葱皮模式显示在当前帧上绘制的内容加上在周围帧上绘制的内容
TG_onionSkinSettings_0='OnionSkin' 洋葱皮设置
TG_onionSkinSettings_1=指定启用洋葱皮时上一帧和下一帧的显示方式
TG_newVideoGroup_0=新建视频组
TG_newVideoGroup_1=从所选内容新建视频组
TG_newVideoGroup_2=取消选定的视频组
TG_newVideoGroup_3=具有空白帧的新视频组
TG_renameFrame_0=重命名帧
TG_renameFrame_1=使用对话框重命名帧、层或视频组
TG_frameMinus_0=降低 1 帧
TG_frameMinus_1=减少2帧持续时间
TG_frameMinus_2=减少5帧持续时间
TG_frameMinus_3=减少1帧持续时间
TG_framePlus_0=增加 1 帧
TG_framePlus_1=提高2帧持续时间
TG_framePlus_2=提高5帧持续时间
TG_framePlus_3=提高1帧持续时间
TG_colorRedToggle_0=红色遮罩
TG_colorRedToggle_1=清除红色遮罩
TG_colorRedToggle_2=隐藏红色遮罩
TG_colorRedToggle_3=显示红色遮罩
TG_colorRedToggle_4=添加红色遮罩
TG_colorGreenToggle_0=绿色遮罩
TG_colorGreenToggle_1=清除绿色遮罩
TG_colorGreenToggle_2=隐藏绿色遮罩
TG_colorGreenToggle_3=显示绿色遮罩
TG_colorGreenToggle_4=添加绿色遮罩
TG_colorBlueToggle_0=蓝色遮罩
TG_colorBlueToggle_1=清除蓝色遮罩
TG_colorBlueToggle_2=隐藏蓝色遮罩
TG_colorBlueToggle_3=显示蓝色遮罩
TG_colorBlueToggle_4=添加蓝色遮罩
TG_colorNone_0=清除所有图层效果
TG_colorNone_1=隐藏所有图层效果
TG_colorNone_2=显示所有图层效果
TG_colorNone_3=清除所有图层效果
TG_inBetweenPrevious_0=In between previous
TG_inBetweenPrevious_1=将选中的帧/层移动到前面的帧/层之前
TG_inBetweenCreateBefore_0=New inbetween after
TG_inBetweenCreateBefore_1=创建一个新中间帧 在选择的帧/层之前 
TG_inBetweenCreateAfter_1=创建一个新中间帧 在选择的帧/层之后
TG_inBetweenNext_0=Inbetween next
TG_inBetweenNext_1=将选定的帧/层移到下一帧/层之后
TG_playheadSplit_0=在播放头处切割
TG_playheadSplit_1=拆分播放头并创建视频组
TG_playheadSplit_2=拆分成1帧并创建视频组
TG_playheadSplit_3=拆分播放头
TG_playheadStart_0=设置播放头开始
TG_playheadStart_1=从播放头修剪开始帧/层
TG_playheadStart_2=将开始帧/层移动到播放头
TG_playheadStart_3=将工作区的起点设置为播放头
TG_playheadEnd_0=设置播放头结束
TG_playheadEnd_1=在播放头修剪结束帧/层
TG_playheadEnd_2=将结束帧/层移动到播放头
TG_playheadEnd_3=将工作区的终点设置为播放头
TG_playheadPrevEdit_0=转到上一个编辑
TG_playheadPrevEdit_1=跳转第一帧
TG_playheadPrevEdit_2=跳转开始工作空间
TG_playheadPrevEdit_3=跳转前一个编辑
TG_playheadNextEdit_0=转到下一个编辑
TG_playheadNextEdit_1=跳转最后帧
TG_playheadNextEdit_2=跳转结束工作空间
TG_playheadNextEdit_3=跳转后一个编辑
TG_commentEdit_0=编辑注释
TG_commentEdit_1=在播放头添加/编辑时间轴注释
TG_commentExportHtml_0=导出注释为网页格式('html')
TG_commentExportHtml_1=导出时间轴注释为一个HTML文件
TG_commentExportText_0=导出注释为文本格式('text')
TG_commentExportText_1=导出时间轴注释为一个文本文件
TG_videoShortcuts_0=使用时间轴快捷键
TG_videoShortcuts_1=启用时间线快捷键,允许您使用左右箭头键移动播放头,并使用空格键播放/停止
STR_processing=处理中
STR_noTimeline=没有可用的时间线

from animdessin2.

PhoenixZeng avatar PhoenixZeng commented on May 26, 2024

Ive added my updates from the past 1 year into this repo, this has also the new timeline scrubber. It would be nice if you could test this.

i forget how to package/install this PS plugin

could u make a release?

from animdessin2.

schroef avatar schroef commented on May 26, 2024

You need to manually install the plugin, see this page and look at step/point 3
https://github.com/sbaril/Photoshop-Animation

PS i still see some English lines in your updated version, could you perhaps look at those as well as the other file i linked in?

from animdessin2.

PhoenixZeng avatar PhoenixZeng commented on May 26, 2024

You need to manually install the plugin, see this page and look at step/point 3 https://github.com/sbaril/Photoshop-Animation

so. how to make the zxp file. just zip it and rename ?
the release seem to too old make in 2020.

PS i still see some English lines in your updated version, could you perhaps look at those as well as the other file i linked in?

yes. but the English lines option I don't know how their work. Therefore, it is impossible to give an good translation
i will update late

from animdessin2.

PhoenixZeng avatar PhoenixZeng commented on May 26, 2024

so. how to make the zxp file. just zip it and rename ? the release seem to too old make in 2020.

It's not that simple as expected. it need signature

Installation failed because the extension does not contain a valid code signature

from animdessin2.

PhoenixZeng avatar PhoenixZeng commented on May 26, 2024

so. how to make the zxp file. just zip it and rename ? the release seem to too old make in 2020.

PS i still see some English lines in your updated version, could you perhaps look at those as well as the other file i linked in?

I need install the newer version to check the translation error

from animdessin2.

PhoenixZeng avatar PhoenixZeng commented on May 26, 2024

i done it and i tested it

for the globals timeline It's a little awkward to use
Especially when holding down and dragging the indicator. Sometimes it won't succeed

from animdessin2.

PhoenixZeng avatar PhoenixZeng commented on May 26, 2024

Untitled-1.txt
Untitled-2.txt

content too long.
i uploaded the file.
just text file

from animdessin2.

schroef avatar schroef commented on May 26, 2024

r the globals timeline It's a little awkward to use
Especially when holding

You need actually need hold and drag, simply click. Its not made for hold and drag actually. Just like the example, i linked to a wrong page a little back; sbaril/Photoshop-Animation#8 (comment)

its a click interface
image

from animdessin2.

schroef avatar schroef commented on May 26, 2024

so. how to make the zxp file. just zip it and rename ? the release seem to too old make in 2020.

It's not that simple as expected. it need signature

Installation failed because the extension does not contain a valid code signature

When installing the extensions manually, you need to use a code in the command line tool to enable debugging, this will also make that error go away.

See this page how to enable that, https://www.davidebarranca.com/2016/06/html-panel-tips-21-photoshop-cc2015-5-2016-survival-guide/
Im not sure on what system you are on, you can enable decoding for version 7

from animdessin2.

schroef avatar schroef commented on May 26, 2024

Yes saw, them, will try to update the repo asap!

PS did using click approach work better? Only downside is that user still needs to select the closest frame. That is something which cant be done. Adobe has not made code openly availble to check where the playhead is compared to the frames.

from animdessin2.

PhoenixZeng avatar PhoenixZeng commented on May 26, 2024

yes.
and
I noticed that the button panel can turn on a timeline (scrubber?). Then a separate timeline (scrubber?) panel seems unnecessary

from animdessin2.

Related Issues (11)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.